UI视图面试相关(下)

图像显示原理

CPU和GPU2个硬件通过总线连接起来,cpu输出位图适当时机通过总线传给gpu,

gpu用位图用图层的渲染,纹理合成,把结果放到帧缓冲区,由视频控制器根据vSin到帧缓冲区提取内容

显示到屏幕上

创建UIView之后,显示部分是由CALayer负责,CALayer有个contents属性就是要绘制到屏幕上的位图。

例如我们要创建一个UILabel,系统在适当时机回调我们一个drawRect:方法,绘制自定义的内容,绘制好的位图会通过Core Animation框架

提交给GPU的OpenGL渲染和合成,显示到屏幕上。(Core Animation及之前步骤是发生在CPU OpenGL是发生在GPU之上)

CPU的工作

Layout:UI布局 文本计算(.frame)

Display:绘制(drawRect:)

Prepare:(UIImageView图片编解码)

Commit:(CoreAnimation提交位图)

GPU渲染管线

顶点着色

图元装配

光栅化

片段着色

片段处理

这五步做完会把像素点提交到帧缓冲区

猜你喜欢

转载自www.cnblogs.com/WellLin/p/12689917.html