离屏渲染

什么是离屏渲染?

是在GPU当前缓冲区之外创建一个新的缓冲区进行渲染操作。

创建缓冲区,上下文在离屏缓冲区和当前缓冲区之间切换都需要耗费性能。

触发操作

1、UIButton圆角设置,UIImageView在使用png的情况下设置圆角不会触发,设置阴影操作也会触发。

2、layer一些属性的设置,如:layer.mask,layer.maskToBounds等。

3、所有的文本操作,如:UILabel,CoreText等。

4、使用CGContext的drowRect方法。

优化方法

常用设置会触发离屏渲染,创建新的缓冲区,上下文需要在新旧缓冲区之间切换,比较耗性能,

圆角优化:

1、用贝塞尔曲线绘制圆角


2、使用UIBezierPath和CAShapLayer

使用UIBezierPath和CAShapLayer不需要在view的drawRect方法中绘制,使用drowRect消耗的CPU性能较大。

CAShapLayer渲染直接在GPU中进行,相比较drawRect在CPU中

阴影优化

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概述 OpenGL ES是一套多功能开放标准的用于嵌入系统的C-based的图形库,用于2D和3D数据的可视化...
    半岛夏天阅读 308评论 0 2
  • 相比于当前屏幕渲染,离屏渲染的代价是很高的,这也是iOS移动端优化的必要部分。 OpenGL中,GPU屏幕渲染有以...
    一个人在路上走下去阅读 8,942评论 0 74
  • 屏幕显示图像的原理: 高中物理应该学过显示器是如何显示图像的:需要显示的图像经过CRT电子枪以极快的速度一行一行的...
    青火阅读 27,707评论 18 104
  • 一、概述 OpenGL ES是一套多功能开放标准的用于嵌入系统的C-based的图形库,用于2D和3D数据的可视化...
    湾里有桃树阅读 534评论 0 0
  • 说一下我的画吧!重新听音乐,在音乐中感受到了一种莫名的悲伤,反复了几遍这首音乐,自己觉察着这种感觉,好像这样的感觉...
    玉霞光阅读 312评论 0 0