离屏渲染技术

离屏渲染(offscreen-rendering)是在当前显示屏幕之外开辟另外一个缓冲区进行图形渲染的过程。这个过程首先会创建一个当前屏幕缓冲区以外的新缓存区,屏幕渲染会有一个上下文环境,离屏渲染的过程就是切换上下文环境,从当前屏幕切换到离屏,等结束以后又将上下文切换回来。因此,离屏渲染需要更长的时间来处理,时间一长可能造成掉帧。此外,离屏缓存区本身就需要额外的空间,大量的离屏渲染可能造成内存过大的压力。

离屏渲染可以在GPU中也可以在CPU中进行。在CPU中,通常是通过重写drawRect并使用CoreGraphics进行绘制操作。而在GPU中,离屏渲染主要发生在当各种图层效果(如圆角、阴影、遮罩等)的混合体在未预合成之前不能在屏幕上直接显示时,此时就需要在屏幕外开辟一片缓存区进行渲染。

离屏渲染产生的原因主要有两种:一是系统触发,当图层经过着色管道后产生的结果需要与另一个图层经过管道得到的结果再次进行计算、混合后产生特殊效果才能渲染到屏幕上时,GPU就需要额外开辟一个缓冲区保存这两次中间结果,这个缓冲区就称为离屏缓冲区;二是手动触发,通过设置layer的shouldRasterize为YES来触发离屏渲染,这样可以将一个layer反复利用,从而达到提升效率的优势。

请注意,虽然离屏渲染在某些情况下可以提高渲染效率,但由于其需要额外的内存和计算资源,因此在使用时需要谨慎考虑其对性能的影响。

CEF3 离屏渲染 - 知乎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值