離屏渲染是什么
對于iOS系統(tǒng)而言,除了之前的文章所提到的渲染方式以外兆旬,為了使復雜圖形的加載更高效以及圖像更優(yōu)質(zhì)结胀,apple的工程師專門開發(fā)了一種渲染方式拌牲,這種渲染方式就是離屏渲染 (Off-screen rendering)
(這個名字是直譯過來的),它是相對于(On-Screen Rendering)
的一種渲染方式撮珠。
離屏渲染的原理
在渲染復雜的圖形時沮脖,為了更高效的使用CPU和GPU,會在GPU的幀緩沖區(qū)之外芯急,額外的開辟一個緩沖區(qū)勺届,這個緩沖區(qū)叫做離屏緩沖區(qū)
,完全獨立于幀緩沖區(qū)
娶耍,GPU在處理復雜圖形時涮因,將處理的結(jié)果放到離屏緩沖區(qū)
中,當復雜的圖形處理完畢后伺绽,再將離屏緩沖區(qū)
中的數(shù)據(jù)傳遞給幀緩沖區(qū)养泡,再顯示到屏幕上
離屏緩存的優(yōu)缺點
優(yōu)點:
能夠更高效的使用CPU和GPU
能夠完成復雜圖形的繪制
缺點:
消耗CPU的性能(要進行離屏渲染,要先開辟一塊新的緩沖區(qū)作為
離屏緩沖區(qū)
, 然后切換上下文環(huán)境從當前環(huán)境(on-screen)
切換到離屏環(huán)境(off-screen)
奈应,在渲染完畢后澜掩,需要再重新切換回當前環(huán)境(on-screen)
)消耗GPU的性能 (需要再GPU中開辟一塊空間作為
離屏緩沖區(qū)
)
判斷是否離屏渲染
在ios模擬器的Debug設(shè)置中有一個Color Off-screen Rendered
的復選框,選中它杖挣,然后就可以在模擬器中看到一部分的View
變?yōu)榱税胪该鞯牡S色背景顏色肩榕,這些View
就是通過離屏渲染
來顯示的。