IOS面试题(UIView) ----- 图像显示原理

OC面试题目合集地址

先要了解2个概念

  • CPU(中央处理器, Central Processing Unit): 通常用于执行程序指令, 对象的创建和销毁、对象属性的调整、布局计算、文本的计算、图片编辑码和排版。

  • GPU(图形处理器, Graphics Processing Unit): 通常用于针对图像信息的渲染。

问题1: 简述下App图像显示原理

流程图
  • CPU, GPU 两个是由总线连接起来的

  • CPU描绘的View往往是个位图, 经由总线传给GPU处理

  • GPU拿到位图会做图层渲染, 纹理合成并把结果传递帧缓存区Frame Buffer

  • 视频控制器根据信号去帧缓存区Frame Buffer提取展示内容, 最后展示在显示器, 就是iphone屏幕上


    内部流程图如下

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

你可能感兴趣的:(IOS面试题(UIView) ----- 图像显示原理)