美文网首页
iOS-离屏渲染

iOS-离屏渲染

作者: 李永开 | 来源:发表于2019-02-11 18:42 被阅读0次

    一.渲染的两种模式

    • On-Screen Rendering
      当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行
    • Off-Screen Rendering
      离屏渲染,指的是GPU在当前的屏幕缓冲区之外新开辟一个缓冲区进行渲染操作

    二.何时触发离屏渲染

    1. cornerRadiusmasksToBounds同时作用
    2. 图层蒙版
    3. 阴影
    4. 光栅化

    三. 为什么要避免离屏渲染

    高级回答:离屏渲染是在GPU上产生的,会触发openGL的多通道渲染管线,造成了额外的开销.有可能会导致cpu+gpu>16.7ms内不能完成一帧的计算,会导致屏幕的卡顿或掉帧.
    离屏渲染会开辟新的缓存区,会进行上下文的切换,增加GPU的渲染时间,有可能会导致屏幕卡顿.

    四.如何避免离屏渲染

    1. 使用UIBezierPath或者CoreGraph来绘制圆角

    五.tips

    iOS9之后,对UIImage使用cornerRadiusmasksToBounds不会产生离屏渲染了.

    相关文章

      网友评论

          本文标题:iOS-离屏渲染

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