美文网首页工作生活
关于离屏渲染

关于离屏渲染

作者: 言叶之庭_ | 来源:发表于2019-07-01 19:13 被阅读0次

最近学习了图像渲染方面的知识,写一下自己对于离屏渲染的理解。

造成离屏渲染的原因有很多:

设置CALayer的cornerRadius,edgeAntialiasingMask,allowsEdgeAntialiasing属性

把CALayer的maskToBounds设为YES 

设置CALayer的shadow属性

设置CALayer的mask属性

把CALayer的allowsGroupOpacity属性设为YES而且opacity小于1

…...等

我们接触到最多需要离屏渲染的地方大都是在处理图片圆角的时候,很多人都知道使用maskToBounds会造成离屏渲染。但是并没要告诉我们为什么会造成离屏渲染,离屏渲染为什么会影响性能。

1.离屏渲染是什么

我们看到的屏幕中的图像都是由GPU(Core Animation)CPU(Core Graphics)渲染出来了,GPU主要负责图像渲染操作;CPU负责对象创建布局,然后读取渲染数据显示在屏幕上。

在我们看到到图像之前,系统首先会在当前的上下文(context)中创建一个缓冲区:帧缓冲区。在帧缓冲区中经过一系列渲染操作,最后将渲染后的结果交给CPU显示在当前屏幕上。

当我们想创建一个新的帧缓冲区进行图形渲染时,需要在屏幕之外的帧缓冲区中进行操作,这就形成了离屏渲染。所以离屏渲染的核心原因其实是为了创建新帧缓冲区进行图形绘制

2.离屏渲为什么会影响性能

当需要离屏渲染时,系统首先要它分配一个内存空间,创建一个新的上下文。系统需要从当前的屏幕的上下文切换到我们新建的上下文,然后在创建的帧缓冲区上来进行绘制,绘制完成以后,为了将帧缓冲区的内容显示到屏幕中,又需要切换到屏幕的上下文中。

造成性能影响的主要原因就是创建帧缓冲区和进行上下文切换。

以上就是我对于造成离屏渲染原因和离屏渲染影响性能的理解。

这里对于什么是上下文切换,上下文切换又是怎么影响性能的,并没详细说明,这里还需要去查阅相关资料来理解。

相关文章

  • iOS离屏渲染

    iOS-离屏渲染详解关于iOS离屏渲染的深入研究关于离屏渲染这两片文章分析的很详细。 渲染过程 根据渲染流水线示意...

  • iOS--离屏渲染

    离屏渲染(Offscreen rendering) 离屏渲染的定义 离屏渲染(offscreen-renderin...

  • 图层性能-离屏渲染、光栅化等

    一.离屏渲染 1.在屏渲染、离屏渲染: On-Screen Rendering/在屏渲染:在屏渲染:指的是GPU的...

  • 关于离屏渲染

    1.什么是离屏渲染 2.离屏渲染的触发方式 3.离屏渲染的意义 4.离屏渲染的不足 1.什么是离屏渲染 要了解离屏...

  • iOS离屏渲染相关值得看的博客

    博客链接 iOS离屏渲染优化 绘制像素到屏幕上 关于iOS离屏渲染的深入研究 https://texturegro...

  • 四、iOS离屏渲染

    一、开启图层是否触发离屏渲染问题 注:离屏渲染的图层会标记为黄色 二、离屏渲染的渲染流程 三、离屏渲染触发的原因 ...

  • 我对离屏渲染的理解

    关于离屏渲染 一直觉得很多离屏渲染的文章说得不明不白。 问题1:离屏渲染是时刻存在着,还是页面滚动的时候才存在着。...

  • UI视图及UITableView流畅性优化

    一.离屏渲染 1. 在屏渲染和离屏渲染 在屏渲染是指在当前用于显示的屏幕缓冲区进行GPU渲染操作 离屏渲染是指在当...

  • 关于离屏渲染

    最近听到面试经常会提到离屏渲染,也听说过。于是总结一下,和大家一起探讨! 一.离屏渲染过程 离屏渲染(offscr...

  • 关于离屏渲染

    最近学习了图像渲染方面的知识,写一下自己对于离屏渲染的理解。 造成离屏渲染的原因有很多: 设置CALayer的co...

网友评论

    本文标题:关于离屏渲染

    本文链接:https://www.haomeiwen.com/subject/ejvncctx.html