離屏渲染
- 在OpenGL中,GPU有2種渲染模式On-Screen Rendering:當前屏幕渲染,在當前用於顯示的屏幕緩衝區進行渲染操作Off-Screen Rendering:離屏渲染,在當前屏幕緩衝區以外新開闢一個緩衝區進行渲染操作
- 離屏渲染消耗性能的原因需要創建新的緩衝區離屏渲染的整個過程,需要多次切換上下文環境,先是從當前屏幕(On-Screen)切換到離屏(Off-Screen),等到離屏渲染結束後,將離屏緩衝區的渲染結果顯示到屏幕上,又需要將上下文環境從離屏切換到當前屏幕
- 哪些操作會觸發離屏渲染?光柵化,layer.shouldRasterize = YES遮罩,layer.mask圓角,同時設置layer.maskToBounds = YES、layer.cornerRadius 大於0(考慮通過CoreGraphics繪製裁剪圓角,這個網上例子有很多我就不多說了,大家隨便搜一搜都可以搜到,或者叫美工直接提供圓角圖片)陰影, layer.shadowXXX (但是如果設置了layer.shadowPath就不會產生離屏渲染了,不設置默認是環繞layer添加的)
閱讀更多 新新猿類 的文章