离屏渲染
- 在OpenGL中,GPU有2种渲染模式On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕缓冲区进行渲染操作Off-Screen Rendering:离屏渲染,在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作
- 离屏渲染消耗性能的原因需要创建新的缓冲区离屏渲染的整个过程,需要多次切换上下文环境,先是从当前屏幕(On-Screen)切换到离屏(Off-Screen),等到离屏渲染结束后,将离屏缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕
- 哪些操作会触发离屏渲染?光栅化,layer.shouldRasterize = YES遮罩,layer.mask圆角,同时设置layer.maskToBounds = YES、layer.cornerRadius 大于0(考虑通过CoreGraphics绘制裁剪圆角,这个网上例子有很多我就不多说了,大家随便搜一搜都可以搜到,或者叫美工直接提供圆角图片)阴影, layer.shadowXXX (但是如果设置了layer.shadowPath就不会产生离屏渲染了,不设置默认是环绕layer添加的)
閱讀更多 新新猿類 的文章