UI图像显示原理

1、图像显示原理

CPUGPU两个硬件是通过总线连接起来
1、CPU经过复杂的处理会输出一个位图
2、CPU输入的位图经过总线,会在合适的时机发送给GPU
3、GPU中会将接收到的位图进行处理(图层渲染、纹理合成等)
4、GPU会将处理后的结果放在帧缓存区(Frame Buffer)中
5、最后经由视频控制器,会在指定时间之前,通过V-Sync信号从帧缓存区中提取中要显示的内容显示在屏幕上

2、UI视图是如何渲染到屏幕上的

1、首先创建一个 UIView 控件
2、UIView 的控件的显示内容是由 CALayer 来负责的
3、CALayer 中的 contents 属性就是我们要渲染到屏幕上的位图
4、比如说我们创建了一个UILabel,那么 contents 就是我们显示为 Hello world 的位图
5、系统会在合适的时机回调给我们一个 drawRect 方法,我们可以在此方法中自定义我们想要的视图
6、最后会通过 Core Animation 框架提交给 GPUOpenGL 渲染管线进行图片的处理(图层渲染、纹理合成等)渲染到屏幕上面

3、CPU和GPU承担的工作

CPU的工作

CPU的工作
  • Layout:UI布局和文本计算等
  • Display:绘制(drawRect方法)
  • Prepare:图片的编解码等
  • Commit:提交位图(Core Animation)

GPU的工作(不甚了解)

GPU的工作

GPU 主要用于处理 CPU 提交过来的位图,经过定点着色、图元装配、光栅化、片段着色、判断处理等操作后,将位图放在帧缓存区中

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,732评论 1 32
  • 卷首语 欢迎来到 objc.io 的第三期! 这一期都是关于视图层的。当然视图层有很多方面,我们需要把它们缩小到几...
    评评分分阅读 1,957评论 0 18
  • UIView和CALayer之间的关系 UIView绘制原理 图像显示原理UI卡顿、掉帧的原因解决方案 离屏渲染何...
    Mark_Guan阅读 1,609评论 0 9
  • 图像显现原理 CPU和GPU两个硬件是通过总线连接起来的,在CPU输出的结果是一个位图,经由总线,在合适的时机,上...
    亲爱的大倩倩阅读 727评论 0 1
  • 今天上午参加了“金秋助学”的座谈会,邀请了包含我在内的十来个大学生。 座谈会流程中请了两位学...
    一路打怪阅读 283评论 0 1

友情链接更多精彩内容