Metal渲染流程

MTLDevice 

获取设备的GPU

MTLLibrary 

Metal函数库,可以通过makeDefaultLibrary和makeLibrary(filePath:)创建

makeDefaultLibrary 用于获取当前主bundle Library

makeLibrary(filePath:) 用于获取其他bundle下的Library

MTLFunction

创建一个Metal函数,函数定义在.metal文件内,取函数的函数名(不带参数名)

MTLCommandQueue

提交Metal渲染命令队列

MTLComputePipelineState || MTLRenderPipelineState

创建管线,作用是把MTLFunction关联到Pipeline上,最终绘制的时候会根据pipeline的绘制方式和函数进行绘制

大致流程

获取到Device和Library、commandQueue之后,通过MTLFunction创建pipeline

生成commandBuffer

创建encode(可以为多个),encode内绑定数据和pipeline,设置执行方式和执行次数后使用endEncoding结束单次encode

最终将command Buffer提交上去即可,如果需要等待结果,可以使用commandBuffer.waitUntilCompleted()

你可能感兴趣的:(Metal渲染流程)