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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容