iOS觸發離屏渲染

在OpenGL中,GPU有2種渲染方式

On-Screen Rendering:當前屏幕渲染,在當前用於顯示的屏幕緩衝區進行渲染操作
Off-Screen Rendering:離屏渲染,在當前屏幕緩衝區以外新開闢一個緩衝區進行渲染操作

離屏渲染消耗性能的原因
需要創建新的緩衝區
離屏渲染的整個過程,需要多次切換上下文環境,先是從當前屏幕(On-Screen)切換到離屏(Off-Screen);等到離屏渲染結束以後,將離屏緩衝區的渲染結果顯示到屏幕上,又需要將上下文環境從離屏切換到當前屏幕

哪些操作會觸發離屏渲染?
光柵化,layer.shouldRasterize = YES

遮罩,layer.mask

圓角,同時設置layer.masksToBounds = YES、layer.cornerRadius大於0
考慮通過CoreGraphics繪製裁剪圓角,或者叫美工提供圓角圖片

陰影,layer.shadowXXX
如果設置了layer.shadowPath就不會產生離屏渲染

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章