Metal &Layer 设计 Metal框架 (内容太多暂无研究)
在iOS8里,苹果新发布了一个新的接口框架叫做Metal,它是一个支持GPU(Graphics Processing Unit-图形处理器)加速3D绘图的API。
CAMetalLayer 是框架QuartzCore中iOS新增的。是核心动画层使用Metal管理的一个Layer。利用Metal在应用程序的渲染,使用CAMetalLayer作为一个背层由它返回从视图的layerClass类的方法。渲染层的内容,使用nextdrawable方法检索纹理,然后用它作为Metal中的一个渲染目标渲染pipeline。渲染每一帧后,新的内容使用presentdrawable:或presentDrawable:atTime: :方法显示用来渲染命令缓冲区。
Metal和OpenGL ES相似,它也是一个底层API,负责和3D绘图硬件交互。它们之间的不同在于,Metal不是跨平台的。与之相反的,它设计的在苹果硬件上运行得极其高效,与OpenGL ES相比,它提供了更快的速度和更低的开销。
注意:Metal应用不能跑在iOS模拟器上,它们需要一个装载着苹果A7芯片或者更新的芯片的设备。所以要学习这篇教程,需要一台这样的设备(iPhone 5S,iPad Air,iPad mini2,iPad mini3)来完成代码的测试。
CAMetalLayer 是 Apple Core Animation Framework 的内部模块, 它 管理Metal Texture Pool, 并且负责渲染MTL Texture到窗口。
CAMetalLayer 的使用
device: 需要为其创建 MTLDevice 对象
pixelFormat: MTLTexture的像素格式, 目前支持 MTLPixelFormatBGRA8Unorm 和 MTLPixelFormatBGRA8Unorm_sRGB 两种。
---------------------
作者:volvet
来源:CSDN
原文:https://blog.csdn.net/volvet/article/details/50877679
版权声明:本文为博主原创文章,转载请附上博文链接!
网友评论