iOS 离屏渲染

在OpenGL中,GPU有2种渲染方式

  1. On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕缓冲区进行渲染操做
  2. Off-Screen Rendering:离屏渲染,在当前屏幕缓冲区之外新开辟一个缓冲区进行渲染操做

离屏渲染消耗性能的缘由

  1. 须要建立新的缓冲区;
  2. 离屏渲染的整个过程,须要屡次切换上下文环境,先是从当前屏幕(On-Screen)切换到离屏(Off-Screen);等到离屏渲染结束之后,将离屏缓冲区的渲染结果显示到屏幕上,又须要将上下文环境从离屏切换到当前屏幕。

哪些操做会触发离屏渲染?

  1. 光栅化,layer.shouldRasterize = YES;
  2. 遮罩,layer.mask;
  3. 圆角,同时设置layer.masksToBounds = YES、layer.cornerRadius大于0;
  • 考虑经过CoreGraphics绘制裁剪圆角,或者叫美工提供圆角图片。
  1. 阴影,layer.shadowXXX;
  • 若是设置了layer.shadowPath就不会产生离屏渲染。
相关文章
相关标签/搜索