離屏渲染Off-Screen Rendering 指的是GPU在當(dāng)前屏幕緩沖區(qū)以外新開辟一個緩沖區(qū)進(jìn)行渲染操作。還有另外一種屏幕渲染方式-當(dāng)前屏幕渲染On-Screen Rendering ,指的是GPU的渲染操作是在當(dāng)前用于顯示的屏幕緩沖區(qū)中進(jìn)行。 離屏渲染會先在屏幕外創(chuàng)建新緩沖區(qū),離屏渲染結(jié)束后,再從離屏切到當(dāng)前屏幕, 把離屏的渲染結(jié)果顯示到當(dāng)前屏幕上,這個上下文切換的過程是非常消耗性能的,實際開發(fā)中盡可能避免離屏渲染。
觸發(fā)離屏渲染Offscreen rendering的行為:
(1)drawRect:方法
(2)layer.shadow
(3)layer.allowsGroupOpacity or layer.allowsEdgeAntialiasing
(4)layer.shouldRasterize
(5)layer.mask
(6)layer.masksToBounds && layer.cornerRadius