先说一下屏幕的渲染?
CPU将计算好的内容提交到GPU,GPU渲染好后,将渲染的结果放进帧缓冲区
缓存写入完成后 将在下一次runloop循环的时候,将bitmap数据现实在屏幕上
什么是离屏渲染?
离屏渲染就是
在使用圆角、阴影、遮罩的时候,图层属性的合成体 会被指定为在未预合成之前不能被添加到屏幕上。所以需要创建一个新的缓冲区进行渲染操作。
在屏幕外渲染就意味着。他在展示到屏幕之前需要在屏幕外上下文中渲染好。
离屏渲染为什么会照成卡顿?
离屏渲染照成卡顿的原因是
1、创建新的缓冲区
2、离屏渲染绘制过程中进行了多次上下文切换。首先是当前屏幕切换到离屏,这里需要将上下文环境从屏幕切换到离屏。等离屏渲染好之后,将离屏缓存区的渲染,绘制到屏幕上,这里又需要将上下文环境从离屏切换到屏幕。这个上下文切换的代价是很大的。