精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony 圖形子系統(二)weston compositor分析

系統 OpenHarmony
我們熟悉了基于 Linux DRM的基礎顯示平臺,以及wayland 相關的幾個基礎概念。這節我們將對搭建在其上的 weston compositor 進行深入分析。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

通過上一節,我們熟悉了基于 Linux DRM的基礎顯示平臺,以及wayland 相關的幾個基礎概念。這節我們將對搭建在其上的 weston compositor 進行深入分析。

Weston 是基于Wayland 協議的 compositor 的參考實現。其它的實現比如 GNOME 和KDE 也默認提供了基于Wayland display server 協議建立的全功能桌面環境。OpenHarmony 標準系統目前采用的是weston 的實現。

了解weston compositor 有利于我們對OpenHarmony 圖形子系統的移植適配及啟動問題進行調試。

Weston 結構分析

下圖是 OpenHarmony-3.0-LTS 版本的圖形子系統 compositor server端的結構圖。

compositor 上端通過 wayland 協議與client 進行通訊。

server 端除了 weston外,還加載了窗口管理服務(wmserver)模塊和 vsync 模塊。另外加載了一個 ivi-shell 模塊,這個我們后面在分析client 端 WindowManager 時再說。

weston 下端依賴幾個display hdi 層相關的庫:

  • libdisplay_gfx 實現圖形的硬件加速接口。
  • libdisplay_gralloc:負責顯示模塊內存的管理,包括內存的申請和釋放、內存映射等操作。

drm backend 中 renderer模塊通過 use_pixman 選項選擇使用 pixman renderer 還是 egl。 egl 是 rendering API(如 OpenGL,OpenGL ES) 與底層原生平臺窗口系統之間的接口。

pixman-render 中又通過 use_tde 變量來選擇是否使用 tde 硬件加速模塊。 TDE(Two Dimensional Engine)是海思的2D圖形加速引擎。Rockchip 對應的叫 RGA (Raster Graphic Acceleration) 二維光柵圖形加速單元,用來加速了二維圖形操作。例如點/線繪制、圖像縮放、旋轉、位圖、圖像合成等。

目前 3.0-LTS 若是其它非海思平臺,若檢測不到tde 模塊,則會默認使用 pixman 來進行軟件渲染。

關于Wayland

要知道 wayland 協議是被設計成”異步的面向對象“(asynchronous object-oriented protocol)的協議。面向對象(Object-oriented)表示 compositor 所提供的服務是以一系列貯存在同一個compositor 中的對象的方式呈現。

各個對象實現了一個接口(interface),接口有名字、若干的方法(request)及系列相關的events。接口協議可以在xml 文件中描述,編譯時有腳本可將其自動生成C 代碼(wayland_standard/wayland_scanner_wrapper.py)。

客戶端可以給對象發送請求,如果對象的接口支持這個請求的話。

compositor 中有一些wayland 的核心接口(core interfaces) 是必須要具備的,定義在 wayland_standard/protocol/wayland.xml中。此外特定的compositor 可以實現它們自己的接口作為擴展協議。每個接口協議都有版本號,以保證版本的兼容性。

知道上面的前置知識后,我們就可以開始分析weston 的代碼了。

weston 啟動流程偽代碼

weston 啟動流程比較長,我們只挑出我們感興趣的主干部分。整理一下流程,有助于后續調試的時候迅速回憶起看過的代碼。

wet_main(args)
weston_display_create() //創建 display 對象
load_configuration(&config) //根據啟動參數,加載配置文件 weston.ini 中的配置
weston_compositor_create() //創建 compositor 實例
load_backend() //根據啟動參數-b,顯式加載后端顯示接口 drm-backend.so
WL_EXPORT weston_backend_init() //顯示后端drm-bakcend.so 初始化入口
drm_backend_create()
if use_pixman:
init_pixman() //根據啟動參數 use_pixman, 在renderer pixman 或者 egl 二選一
pixman_render_init()
tde_renderer_alloc_hook()
tde_render_gfx_init()
dlopen(”libdisplay_gfx.so”)
GrallocInitialize()
→ peripheral/display “libdisplay_gralloc.so”
else:
init_egl()
VsyncModuleStart() //依賴圖形子系統中的 libvsync_module.so
InitSA() //注冊ID為VSYNC_MANAGER_ID的 Vsync Manager 服務
RegisterSystemAbility(VSYNC_MANAGER_ID)
VsyncMainThread()
load_modules() //加載weston.ini 里配置的 modules 項,3.0-LTS版本里加載了 libivi-controller.z.so,libwmserver.z.so 。 后面介紹 wmserver 窗口管理器模塊。
wl_display_run() //進入事件等待及常規任務循環
while(run)
wl_display_flush_clients()
wl_event_loop_dispatch()

然后來梳理一下我們最關心的 surface 提交, 然后重繪(repaint)及輸出流程。

surface 接口綁定及 surface commit 流程

這里就會涉及到一些接口實現的綁定。偽代碼中用 (->) 箭頭表示我們所關注的其中一個接口方法的實現。方法調用是當client 端發送對應的 wl_xxx 請求事件時被調用。

weston_compositor_create()
compositor_bind() //創建 compositor 時綁定 compositor_interface 接口實現
struct wl_compositor_interface compositor_interface //compositor 接口實現
→compositor_create_surface //創建surface 時綁定 surface 接口實現
struct wl_surface_interface surface_interface //surface 接口實現
→ surface_commit() //在 client 端調用 wl_surface_commit() 提交至此接口
weston_surface_commit_state()
pixman_render_attach() //若是新加入的surface 則會進行renderer attach
weston_surface_schedule_repaint(surface)//標記 output 中 該surface 需要被 repaint

repaint 流程

當有surface 被標記成需要 repaint 時,repaint timer handler 會對這些surface 進行重繪后輸出顯示。

wl_event_loop //wayland 事件循環
output_repaint_timer_handler
backend→repaint_begin() //開始調用后端 repaint 接口
weston_output_repaint()
→drm_output_repaint()
drm_output_render() //渲染
if use_pixman:
drm_output_render_pixman()
→pixman_renderer_repaint_output()
repaint_surfaces()
draw_view()
repaint_region()
else:
drm_output_render_gl()
drm_repaint_flush() //合成重繪后的畫面刷新輸出
drm_pending_state_apply() //kms

復制先更新這些,偽代碼部分可以對照著源碼多梳理幾遍。后面將編寫一個簡單的client,熟悉其核心接口對象(core interfaces)。然后以其為基礎分析圖形子系統中如何對其進行封裝適配,增加WM 窗口管理,Vsync 幀同步,內存管理等模塊。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-12-17 16:42:09

鴻蒙HarmonyOS應用

2013-01-06 13:06:02

2023-03-07 15:54:45

鴻蒙Mesa庫

2023-06-28 15:00:02

開源鴻蒙輸入系統架構

2023-04-12 15:31:11

系統服務管理鴻蒙

2022-03-18 16:07:04

Graphic子系統鴻蒙

2021-11-08 15:04:47

鴻蒙HarmonyOS應用

2022-01-06 16:17:58

鴻蒙HarmonyOS應用

2021-09-18 14:40:37

鴻蒙HarmonyOS應用

2022-02-17 20:57:07

OpenHarmon操作系統鴻蒙

2021-09-13 15:15:18

鴻蒙HarmonyOS應用

2023-04-06 09:14:11

多模輸入子系統鴻蒙

2022-04-19 11:23:26

release3.1子系統鴻蒙

2022-01-10 15:30:11

鴻蒙HarmonyOS應用

2022-05-10 11:17:27

電話子系統數據服務模塊

2021-11-18 10:28:03

鴻蒙HarmonyOS應用

2021-09-17 14:38:58

鴻蒙HarmonyOS應用

2022-05-24 15:46:51

Wi-FiSTA模式

2022-01-13 10:11:59

鴻蒙HarmonyOS應用

2017-02-28 18:26:09

Linuxinput子系統編程
點贊
收藏

51CTO技術棧公眾號

日本少妇高潮喷水视频| 精品蜜桃一区二区三区| 国产免费一区二区三区四区| 日韩中文字幕无砖| 五月婷婷综合激情| 亚洲精品在线免费看| av一级黄色片| 天堂久久一区二区三区| 美女精品视频一区| 黄色性生活一级片| 久久亚洲国产精品尤物| 午夜在线成人av| 亚洲精品一区国产精品| 欧美视频xxx| 狠狠色丁香九九婷婷综合五月| 欧美精品www在线观看| 日本欧美一区二区三区不卡视频| 99热这里只有精品首页 | 国产一区二区三区免费播放| 91精品国产高清久久久久久| 亚洲 欧美 国产 另类| 欧美理论电影在线精品| 欧美美女直播网站| 999香蕉视频| 国产美女福利在线观看| 国产精品色一区二区三区| 狠狠色噜噜狠狠色综合久| 国产免费av电影| 视频一区二区中文字幕| 欧美精品www| 免费国产羞羞网站美图| 精品国产一区二区三区| 国产婷婷色综合av蜜臀av| 色欲欲www成人网站| 久久91视频| 欧美自拍丝袜亚洲| 亚洲午夜精品久久久久久人妖| 国产黄色在线观看| 国产精品久久久久影院色老大| 蜜桃臀一区二区三区| 成人乱码一区二区三区 | 欧美a在线看| 国产日韩欧美电影| 日本10禁啪啪无遮挡免费一区二区| 亚洲精品综合久久| 国产成人精品影院| 91亚洲精品丁香在线观看| 一区二区日韩视频| 麻豆精品视频在线观看视频| 国产精品视频自拍| 一本到在线视频| 久久av老司机精品网站导航| 国产精品永久免费在线| 在线观看中文字幕2021| 麻豆91在线播放免费| 国产精品视频播放| 岳乳丰满一区二区三区| 久久国产精品免费| 成人av电影天堂| 国产精品久久影视| 国产精品一品二品| 高清免费日韩| 天天操天天干天天操| 99re6这里只有精品视频在线观看| 国产一区二区在线观看免费播放| 香蕉国产在线视频| 久久精品人人做人人综合| 欧美日韩一区二区视频在线观看| 精品乱码一区二区三四区视频| 久久精品夜色噜噜亚洲a∨| 日韩精品一区二区三区四区五区| 91se在线| 一区二区三区**美女毛片| 欧美性猛交内射兽交老熟妇| av剧情在线观看| 一本久久综合亚洲鲁鲁五月天 | 亚洲香蕉成视频在线观看| 国产91丝袜美女在线播放| 99九九热只有国产精品| 欧美黑人xxxx| 免费看一级视频| 麻豆91在线看| 国产日韩精品一区观看| 国产资源在线观看| 亚洲人亚洲人成电影网站色| 国产午夜大地久久| 亚洲日本网址| 欧美成人一区二区三区| 国产精品无码在线| 日韩成人激情| 欧美激情精品久久久久久黑人 | 欧美一级二级三级蜜桃| 亚洲av无码一区二区三区网址| 超碰成人久久| 欧美精品videos| 中文字幕一区2区3区| 高清在线观看日韩| 日本高清久久一区二区三区| 伊人春色在线观看| 91福利精品第一导航| 中文字幕第三区| 精品国产一区二区三区| 色综合老司机第九色激情| 波多野结衣在线观看一区| 国产精品系列在线观看| 日日噜噜噜噜夜夜爽亚洲精品| 国产一二三区在线观看| 色综合天天综合网天天看片| 老女人性生活视频| 成人在线免费观看91| 91av在线免费观看| 99国产精品久久久久99打野战| 久久久亚洲精品一区二区三区| 国产精品8888| 欧美成人app| 日韩精品在线观| 国产亚洲成人精品| 精品一区二区三区在线播放视频| 久久久婷婷一区二区三区不卡| av网站免费在线观看| 欧美性大战xxxxx久久久| 一区二区免费在线观看视频| 91精品1区| 国产精品一区二区性色av| 午夜福利视频一区二区| 一卡二卡欧美日韩| 天天久久综合网| 成人情趣视频网站| 日本久久亚洲电影| 深夜福利视频一区| 亚洲成人动漫精品| 91porn在线| 最新欧美人z0oozo0| 成人国产精品av| 欧美性videos| 欧美日本韩国一区| 中文天堂资源在线| 日本aⅴ免费视频一区二区三区| 狼狼综合久久久久综合网| 国产精品论坛| 亚洲国产高清高潮精品美女| 精品少妇theporn| 国产精品77777| 妞干网在线播放| 一区二区精彩视频| 大胆人体色综合| 国产黄a三级三级看三级| 亚洲视频在线观看一区| 在线观看日本www| 在线免费观看日本欧美爱情大片| 91免费国产视频| √天堂8在线网| 日韩免费一区二区| 精品久久免费视频| 不卡视频一二三| 久久9精品区-无套内射无码| 男男gay无套免费视频欧美| 奇米影视亚洲狠狠色| 姝姝窝人体www聚色窝| 高跟丝袜一区二区三区| 国产吞精囗交久久久| 久久久水蜜桃av免费网站| 欧美日韩成人一区二区三区 | 免费人成又黄又爽又色| 葵司免费一区二区三区四区五区| 日韩精品成人一区二区在线观看| 视频精品导航| 久久91亚洲精品中文字幕奶水 | 99精品国产99久久久久久白柏| 色综合久久久久无码专区| 深夜福利久久| 91中文字幕在线| 欧美aa在线| 日韩在线视频导航| 亚洲乱码国产乱码精品精软件| 色综合色综合色综合 | 欧美国产偷国产精品三区| 亚洲自拍偷拍视频| 看黄在线观看| 少妇精69xxtheporn| 亚洲国产中文字幕在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲国产日韩美| 日韩一级淫片| 国产精品成人av性教育| 日本无删减在线| 亚洲色图综合久久| 精品人妻午夜一区二区三区四区 | 日韩美女中文字幕| av在线看片| 亚洲免费人成在线视频观看| 92久久精品一区二区| 午夜伊人狠狠久久| 影音先锋男人资源在线观看| 91在线观看污| 中文字幕一区二区三区四| 亚洲欧美日韩专区| 7777在线视频| 国产亚洲电影| 国产成人女人毛片视频在线| 国产精品xxx| 欧美一级大片在线免费观看| 亚洲夜夜综合| 最近2019中文字幕一页二页| 亚洲aⅴ在线观看| 欧美一区二区视频网站| 看黄色一级大片| 精品久久久久久中文字幕大豆网| 伊人久久久久久久久久久久久久| 26uuu国产一区二区三区| 欧美性猛交乱大交| 蜜臀av一区二区| 日韩中文字幕免费在线| 黄色工厂这里只有精品| 综合视频在线观看| 精品国产一级毛片| 欧美另类视频在线| 国产成人高清精品免费5388| 91久久精品一区二区别 | 国产精品国产精品国产专区不卡| 国产福利91精品一区二区| 日本老师69xxx| 在线毛片观看| 7777免费精品视频| 91九色在线播放| 欧美激情影音先锋| av毛片在线免费| 欧美xxxx14xxxxx性爽| 秋霞a级毛片在线看| 色妞久久福利网| 91这里只有精品| 色系列之999| 日韩子在线观看| 久久精品在线视频| 麻豆网在线观看| 久久精品国产亚洲一区二区| 91啦中文在线| 色噜噜久久综合伊人一本| 在线免费看av| 久久精品成人欧美大片| 黄网站app在线观看| 色狠狠久久aa北条麻妃| 免费av在线网址| 久久精品国产2020观看福利| 精品欧美色视频网站在线观看| xx视频.9999.com| 大地资源网3页在线观看| 另类专区欧美制服同性| 一色桃子av在线| 欧美精品国产精品日韩精品| av蜜臀在线| 992tv成人免费视频| 亚洲欧洲日本韩国| 国产精品r级在线| 欧美123区| 成人网中文字幕| 一区二区三区国产好| 国产精品污www一区二区三区| 国内毛片久久| 日本一区二区在线视频| 日韩精品欧美| 日本一二三区视频在线| 日韩午夜av| 美女黄色片视频| 久久国产尿小便嘘嘘| 老女人性生活视频| 91片黄在线观看| 国产欧美小视频| 亚洲一区中文日韩| 免费黄色网址在线| 欧美日韩激情一区| 亚洲精品一区二区三区新线路| 国产偷亚洲偷欧美偷精品| 日本高清中文字幕在线| 欧美夫妻性视频| 在线日韩影院| 91精品一区二区| 日韩精品导航| 五月天男人天堂| 在线亚洲欧美| 欧美又黄又嫩大片a级| 波多野结衣中文字幕一区 | 久久精品无码一区二区三区毛片| 成人在线综合网| 日韩av片在线| 亚洲h动漫在线| 制服丝袜在线一区| 日韩欧美aaaaaa| 国产九九在线| 欧美激情性做爰免费视频| 精品123区| 国产欧美日韩一区| 国产精品99视频| 男人揉女人奶房视频60分| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久久99精品久久久久| 98色花堂精品视频在线观看| 国产精品专区一| 欧美一级二级三级视频| 亚洲成人动漫在线| 日本大胆欧美人术艺术动态| youjizz.com日本| 国产精品不卡一区二区三区| 97久久久久久久| 日韩欧美国产1| 性开放的欧美大片| 欧洲美女7788成人免费视频| 一区二区日韩| 国产成人三级视频| 蜜桃久久久久久| 国产精品成人一区二区三区电影毛片| 亚洲欧美激情插| 中文字幕在线2019| 亚洲男人av电影| а√在线天堂官网| 91久久极品少妇xxxxⅹ软件| 欧美肥老太太性生活| 欧美黑人又粗又大又爽免费| aaa国产一区| 九九热精品免费视频| 欧美日韩不卡视频| av播放在线| 国产成人综合亚洲| 亚洲动漫在线观看| 国产特级黄色大片| 91亚洲精品乱码久久久久久蜜桃| 国产极品在线播放| 欧美一级一区二区| 久久99精品久久| 国产日韩欧美视频在线| 欧美偷拍综合| 97公开免费视频| 久久久久久久综合狠狠综合| 久久久久久少妇| 亚洲精品永久免费精品| 亚洲欧洲自拍| 日本不卡在线播放| 日韩高清欧美激情| 色屁屁草草影院ccyy.com| 欧美性大战xxxxx久久久| 成人在线观看网站| 国产精品高精视频免费| 日韩88av| 日本国产一级片| 亚洲欧美日韩在线| 国产激情无套内精对白视频| 久久99视频免费| 欧美大奶一区二区| 久久久久久久久久久视频| 91麻豆6部合集magnet| 伊人久久久久久久久久久久| 国产小视频国产精品| 成人在线高清| 黄色网址在线免费看| 国产传媒久久文化传媒| 精品深夜av无码一区二区老年| 亚洲第一中文字幕| 性欧美freesex顶级少妇| 青青草国产精品| 麻豆精品一区二区综合av| 国产人妻精品一区二区三区不卡| 日韩一级完整毛片| 欧产日产国产精品视频| 台湾成人av| 国产一区二区不卡在线| 日本熟妇色xxxxx日本免费看| 亚洲国产精品久久久久秋霞蜜臀| 在线中文字幕播放| 一区二区免费在线视频| 国产福利不卡视频| 久草视频在线观| 尤物yw午夜国产精品视频| 99亚洲男女激情在线观看| 搞av.com| 中文字幕乱码久久午夜不卡| va视频在线观看| 2019日本中文字幕| 欧美第一精品| 久久福利小视频| 欧美日韩精品一区二区三区四区 | 欧美一区二区福利在线| а√在线中文在线新版| 亚洲高清视频在线观看| 国产成人高清在线| 亚洲 欧美 日韩 在线| 欧美成人精品激情在线观看| 久久99性xxx老妇胖精品| 永久看看免费大片| 欧美性极品xxxx做受| 2024最新电影免费在线观看| 蜜桃狠狠色伊人亚洲综合网站| 国产麻豆视频精品| www.日韩一区| 欧美极品在线视频| 视频在线不卡免费观看| 最新在线黄色网址| 日韩一区二区三区免费观看| 日韩伦理三区| 欧美成人精品免费| √…a在线天堂一区|