CoreAnimation在渲染中充当的角色

2020-07-05  本文已影响0人  DSMars

在iOS中使用 Core Graphics、Core Animation、Core Image 等框架来绘制可视化内容,这些软件框架相互之间也有着依赖关系。这些框架都需要通过 OpenGL 来调用 GPU 进行绘制,最终将内容显示到屏幕之上。

iOS下的渲染框架.png

本文将介绍 iOS 中 CoreAnimation在渲染中充当的角色

Core Animation 是一个复合引擎,其职责是 尽可能快地组合屏幕上不同的可视内容,这些可视内容可被分解成独立的图层(即 CALayer)。从本质上而言,CALayer 是用户所能在屏幕上看见的一切的基础。

Core Animation位于AppKit和UIKit之下,紧密集成到Cocoa和Cocoa Touch的视图工作流中。当然,Core Animation也有接口,可以扩展应用程序视图所暴露的功能,让你对应用程序的动画有更细粒度的控制

iOS下的CoreAnimation.png

通过上面的介绍,我们知道了 CALayer 的本质,那么它是如何调用 GPU 并显示可视化内容的呢?下面我们就需要了解下 Core Animation 流水线的工作原理。

CoreAnimation 渲染管线.png

App本身并不负责渲染,渲染由独立进程Render Server负责

App 通过 IPC 将渲染任务及相关数据提交给 Render Server。Render Server 处理完数据后,再传递至 GPU。最后由 GPU 调用 iOS 的图像设备进行显示。

Core Animation 流水线的详细过程如下:

上一篇下一篇

猜你喜欢

热点阅读