先要了解2个概念
-
CPU
(中央处理器, Central Processing Unit): 通常用于执行程序指令, 对象的创建和销毁、对象属性的调整、布局计算、文本的计算、图片编辑码和排版。 -
GPU
(图形处理器, Graphics Processing Unit): 通常用于针对图像信息的渲染。
问题1: 简述下App图像显示原理

-
CPU
,GPU
两个是由总线连接起来的 -
CPU
描绘的View往往是个位图
, 经由总线传给GPU
处理 -
GPU
拿到位图会做图层渲染, 纹理合成并把结果传递帧缓存区Frame Buffer
中 -
视频控制器
根据信号去帧缓存区Frame Buffer
提取展示内容, 最后展示在显示器, 就是iphone屏幕上
内部流程图如下

- 例如我们创建一个视图, 显示部分由
CALayer
负责 -
CALayer
中content
属性负责绘制创建视图的位图
。比如创建一个UILabel, 最终到CALayer
的content
就会生成一个UILabel的位图 - 绘制好的
位图
经由Core Animation
框架提交给 GPU中OpenGL
进行渲染 -
OpenGL
进行渲染,GPU渲染管线
其实就是OpenGL渲染管线
, 主要会对位图进行顶点着色
、图元装配
、光栅化
、片段着色
、片段处理。 -
GPU
处理之后, 把最终像素点传给帧缓存区Frame Buffer
, 再借由视频控制器传给屏幕
网友评论