离屏渲染
- On-Screen Rendering
意为在屏渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行 - Off-Screen Rendering
意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作
何时会触发离屏渲染?
- 圆角(当和maskToBounds一起使用时)
- 图层蒙版
- 阴影
- 光栅化
为何要避免离屏渲染?
- 离屏渲染是在GPU上产生的,会触发openGL的多通道渲染管线,造成了额外的开销.有可能会导致cpu+gpu>16.7ms内不能完成一帧的计算,会导致屏幕的卡顿或掉帧
- 离屏渲染会开辟新的缓存区,会进行上下文的切换,增加GPU的渲染时间,有可能会导致屏幕卡顿
如何避免离屏渲染
- 使用UIBezierPath或者CoreGraph来绘制圆角
网友评论