Core Animation是如何在CPU和GPU之间分配工作的

Core Animation是如何在CPU(中央处理器)软件层面和GPU(图形处理器)硬件层面分配工作的:

  • 动画和屏幕上组合的图层实际上*被一个单独的进程管理,而不是你的应用程序***,iOS5之前的版本是SpringBoard进程,iOS6之后的版本叫做BackBoard.
    当运行一段动画时候,这个过程会被四个分离的阶段被打破: 1
    布局:这是准备你的视图/图层的图层关系,以及设置图层属性(位置,背景.边框等)的阶段. 2
    显示:这是图层的寄宿图片被绘制的阶段.绘制有可能涉及你的-drawRect:和-drawLayer:inContext:方法的调用路径.
    3 准备:这是Core Animation准备发送动画数据到渲染服务的阶段.这同时也是Core Animation
    将要执行一些别的事务例如解码动画过程中将要显示的图片的时间点. 4 提交:这是最后的阶段,Core
    Animation打包所有图层和动画属性,然后通过IPC(内部处理通信)发送到渲染服务进行显示.
    一旦打包的图层和动画到达渲染服务进程,他们会被反序列化来形成另一个叫做
    渲染树的图层树.**渲染服务对动画的每一帧做出如下工作: 5
    对所有的图层属性计算中间值,设置OpenGL几何形状(纹理化的三角形)来执行渲染. 6 在屏幕上渲染可见的三角形
    一共六个阶段,前五个阶段在软件层面处理(通过CPU),最后一个阶段被GPU执行.你真正只能控制前两个阶段:布局和显示.CoreAnimation框架在内部处理剩下的事务,你也控制不了它.
    这并不是个问题,因为在布局和显示阶段,你可以决定哪些由CPU执行,哪些交 给GPU去做。那么改如何判断呢? GPU相关的操作
    GPU为一个具体的任务做了优化:它用来采集图片和形状(三角形),运行变换,应用纹理和混合然后把它们输送到屏幕上。现代iOS设备上可编程的GPU在这些操作的执行上又很大的灵活性,但是Core<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值