离屏渲染总结

410 阅读1分钟

离屏渲染概念:

GPU渲染时,无法将数据一次写入帧缓冲framebuffer(与屏幕像素同数据量的数据区),需要开辟一块临时内存进行渲染最后写入到framebuffer中。

常见触发离屏渲染场景有:

  • 使用阴影
  • 抗锯齿
  • 光栅化(当位图暂存起来)
  • 使用不透明图层
  • 使用圆角,并操作content 比如UIImageView无content 图片时,不会产生离屏渲染。 UILabel设置圆角不是针对其content,也不会产生离屏渲染。

优化:

  • 使用shadowpath
  • 使用bezierPath圆角曲线
  • 使用mask遮罩做圆角处理(遮罩白色区域为需要遮挡的部分),性能最好
  • alpha=1