美文网首页
离屏渲染

离屏渲染

作者: 昵称是乱起的 | 来源:发表于2019-01-19 15:51 被阅读6次

    在OpenGL中,GPU有2种渲染方式
    On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕缓冲区进行渲染操作
    Off-Screen Rendering:离屏渲染,在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作

    离屏渲染消耗性能的原因

    需要创建新的缓冲区
    离屏渲染的整个过程,需要多次切换上下文环境,先是从当前屏幕(On-Screen)切换到离屏(Off-Screen);等到离屏渲染结束以后,将离屏缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕

    哪些操作会触发离屏渲染

    圆角,同时设置layer.masksToBounds = YES、layer.cornerRadius大于0
    阴影,layer.shadowXXX,如果设置了layer.shadowPath就不会产生离屏渲染
    遮罩,layer.mask
    光栅化,layer.shouldRasterize = YES

    总结一下:
    当我们指定了UI视图的某些属性,标记它为在位域合成之前不能用于当前屏幕上直接显示的时候就会触发离屏渲染,所谓离屏渲染就是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作

    相关文章

      网友评论

          本文标题:离屏渲染

          本文链接:https://www.haomeiwen.com/subject/uafzdqtx.html