美文网首页iOS视觉
九 CoreAnimation 渲染

九 CoreAnimation 渲染

作者: 王俏 | 来源:发表于2020-08-05 07:47 被阅读0次

1. 职责

每个视图对象都有一个Core Animation对象,它是一个CALayer类实例,Core Animation是一个复合引擎,主要职责是进行布局,渲染和实现动画
Core Animation 通过OpenGL/Metal驱动GPU完成渲染。
iOS下,UIKit在Core Animation上提供了一个透明的接口层,开发者大多数情况下不用直接访问Core Animation层,而通过UIView的方法和属性可以实现类似的行为。

2. Core Animation渲染流水线

在 Application 中布局 UIKit 视图控件间接的关联 Core Animation 图层

  • Commit Transaction 之前会经过以下处理:
    Layout层 会构建视图addSubview和layoutSubviews
    Display层 绘制视图drawRect,设置iOS设备要最终成像的图元数据
    Prepare 额外的 Core Animation 工作,一般处理图像的解码 & 转换等操作
    Commt,打包图层并将它们发送到 Render Server

  • Commit Transaction之后,图元数据就将会在下一次 RunLoop 时被 Application 发送给底层的iOS Render Server,即 OpenGL ES & Metal

  • 底层Render Server 经过一些列的数据处理将处理完毕的数据传递给GPU

  • 然后 GPU 负责渲染,最终在当前 iOS 设备的显示屏中呈现图像。

image
@图转自博客文章: http://chuquan.me/2018/09/25/ios-graphics-render-principle

相关文章

网友评论

    本文标题:九 CoreAnimation 渲染

    本文链接:https://www.haomeiwen.com/subject/lawwrktx.html