iOS 離屏渲染

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

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

離屏渲染消耗性能的緣由

  1. 須要建立新的緩衝區;
  2. 離屏渲染的整個過程,須要屢次切換上下文環境,先是從當前屏幕(On-Screen)切換到離屏(Off-Screen);等到離屏渲染結束之後,將離屏緩衝區的渲染結果顯示到屏幕上,又須要將上下文環境從離屏切換到當前屏幕。

哪些操做會觸發離屏渲染?

  1. 光柵化,layer.shouldRasterize = YES;
  2. 遮罩,layer.mask;
  3. 圓角,同時設置layer.masksToBounds = YES、layer.cornerRadius大於0;
  • 考慮經過CoreGraphics繪製裁剪圓角,或者叫美工提供圓角圖片。
  1. 陰影,layer.shadowXXX;
  • 若是設置了layer.shadowPath就不會產生離屏渲染。
相關文章
相關標籤/搜索