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就不會產生離屏渲染。
歡迎關注本站公眾號,獲取更多信息