離屏渲染

  • On-Screen Rendering
  意為當(dāng)前屏幕渲染哥谷,指的是GPU的渲染操作是在當(dāng)前用于顯示的屏幕緩沖區(qū)中進(jìn)行判沟。

Off-Screen Rendering

離屏渲染蒿辙,指的是GPU在當(dāng)前屏幕緩沖區(qū)以為新開辟一個緩沖區(qū)進(jìn)行渲染操作皱碘。
在使用圓角铣口、陰影和遮罩等視圖功能的時候萎庭,圖層屬性的混合體被指定為在未預(yù)合成之前不能直接在屏幕中繪制,所有就需要在屏幕外的上下文中渲染褪尝,即離屏渲染玖绿。
離屏渲染之所以耗性能亏推,是因為要創(chuàng)建一個屏幕外的緩沖區(qū)学赛,然后再完成渲染。其中創(chuàng)建緩沖區(qū)和切換上下文最消耗性能吞杭,繪制不是消耗性能的主要原因盏浇。
  • 界面的渲染過程
RunLoop有一個60fps的回調(diào),即每隔16.7ms繪制一次屏幕芽狗,所以view的繪制必須在這個時間內(nèi)完成绢掰,view內(nèi)容的繪制是cpu的工作,然后把繪制的內(nèi)容交給GPU渲染包括多個view的拼接(Compositing),紋理渲染(Texture)等等,最后顯示在屏幕上滴劲。
但是如果在16.7ms內(nèi)無法完成繪制谊却,就會出現(xiàn)丟幀情況,一般情況下如果幀率保持在30fps以上哑芹,界面的卡頓效果不明顯,那么就需要在33.4ms內(nèi)完成view的繪制捕透,而低于這個幀率就會產(chǎn)生卡頓效果聪姿,影響體驗。
  • 渲染過程:
UIView 的layer層有一個content乙嘀,指向一塊緩存末购,即backing store。
UIView 的繪制時會調(diào)用drawRect方法虎谢,通過context將數(shù)據(jù)寫入backing store盟榴。
在 backing store 寫入完成后,通過 rending server 交給GPU 去渲染婴噩,將backing store 中的bitmap數(shù)據(jù)顯示在屏幕上擎场。
  • 如何觸發(fā)離屏渲染
    • 圓角(maskToBounds = YES)單獨(dú)設(shè)置一項不會觸發(fā)離屏渲染。
    • 蒙版
    • 陰影
    • 光柵化
      參考
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末几莽,一起剝皮案震驚了整個濱河市迅办,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌章蚣,老刑警劉巖站欺,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纤垂,居然都是意外死亡矾策,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門峭沦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贾虽,“玉大人,你說我怎么就攤上這事吼鱼¢” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵蛉抓,是天一觀的道長庆尘。 經(jīng)常有香客問我,道長巷送,這世上最難降的妖魔是什么驶忌? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上付魔,老公的妹妹穿的比我還像新娘聊品。我一直安慰自己,他們只是感情好几苍,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布翻屈。 她就那樣靜靜地躺著,像睡著了一般妻坝。 火紅的嫁衣襯著肌膚如雪伸眶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天刽宪,我揣著相機(jī)與錄音厘贼,去河邊找鬼。 笑死圣拄,一個胖子當(dāng)著我的面吹牛嘴秸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庇谆,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼岳掐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饭耳?” 一聲冷哼從身側(cè)響起岩四,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哥攘,沒想到半個月后剖煌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逝淹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年耕姊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栅葡。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡茉兰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出欣簇,到底是詐尸還是另有隱情规脸,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布熊咽,位于F島的核電站莫鸭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏横殴。R本人自食惡果不足惜被因,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梨与,春花似錦堕花、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呻粹,卻和暖如春壕曼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尚猿。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留楣富,地道東北人凿掂。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像纹蝴,于是被迫代替她去往敵國和親庄萎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 圖像顯示原理 圖像顯示的大概流程: 程序運(yùn)行從內(nèi)存中讀取數(shù)據(jù)對圖片進(jìn)行解壓得到像素數(shù)據(jù)塘安,若GPU不支持圖片的顏色格...
    foreverSun_122閱讀 618評論 0 2
  • 相比于當(dāng)前屏幕渲染糠涛,離屏渲染的代價是很高的,這也是iOS移動端優(yōu)化的必要部分兼犯。 OpenGL中忍捡,GPU屏幕渲染有以...
    一個人在路上走下去閱讀 8,863評論 0 74
  • Core Animation工具用來監(jiān)測Core Animation性能。它給我們提供了周期性的FPS切黔,并且考慮到...
    F麥子閱讀 824評論 0 1
  • 一砸脊、概述 OpenGL ES是一套多功能開放標(biāo)準(zhǔn)的用于嵌入系統(tǒng)的C-based的圖形庫,用于2D和3D數(shù)據(jù)的可視化...
    灣里有桃樹閱讀 527評論 0 0
  • GPU渲染機(jī)制: CPU 計算好顯示內(nèi)容提交到 GPU纬霞,GPU 渲染完成后將渲染結(jié)果放入幀緩沖區(qū)凌埂,隨后視頻控制器會...
    尋找最亮的光閱讀 4,674評論 1 19