精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩精品一区国产麻豆| 中文字幕精品一区二区精品绿巨人 | 久久精品一区二区三区不卡| 国产精品91久久| 粉嫩av性色av蜜臀av网站| 婷婷激情成人| 中文字幕精品无码一区二区| 亚洲一区中文字幕在线观看| 国产精品v片在线观看不卡| 在线观看免费黄网站| 中文在线免费| av一区二区三区四区| 国产精品视频男人的天堂| 欧美人与性囗牲恔配| 91精品国产乱码久久久竹菊| 在线精品亚洲一区二区不卡| 免费看av软件| 国产一二三区在线视频| 国产精品一二三区在线| 欧美一级淫片videoshd| 娇小11一12╳yⅹ╳毛片| 欧美丝袜足交| 91精品国产色综合久久不卡电影| 黄色a级片免费| 污污的网站在线免费观看| 久久精品视频一区二区三区| 国产精品我不卡| 一卡二卡在线观看| 天堂资源在线中文精品| 国内精品小视频在线观看| 三上悠亚作品在线观看| 久久99高清| 亚洲国产成人精品女人久久久| 国产aⅴ爽av久久久久| 欧美色网一区| 午夜国产精品影院在线观看| 国产人妻人伦精品| 欧美三级黄网| 国产精品欧美一区喷水| 六月婷婷久久| 午夜国产在线观看| 成人午夜电影小说| 91久久偷偷做嫩草影院| 国产又粗又黄又爽视频| 奇米一区二区三区av| 日本a级片电影一区二区| 国产精品suv一区二区| 亚洲成人国产| 久久天天躁狠狠躁夜夜躁| 国产精品综合激情| 日韩欧美三级| www.xxxx欧美| 久久国产美女视频| 久久久国产精品| 久久久精品在线| 色哟哟一一国产精品| 日韩精品2区| 中文亚洲视频在线| 九九热久久免费视频| 日本一区二区免费高清| 日韩中文综合网| 免费在线观看a级片| 国产精品精品| 欧美成人精品xxx| 成人在线观看免费完整| 偷偷www综合久久久久久久| www.国产一区| 九九视频免费在线观看| 亚洲婷婷免费| 欧美综合一区第一页| 无码人妻一区二区三区线| 黄色网在线免费观看| 91嫩草亚洲精品| 色偷偷88888欧美精品久久久| 亚洲天堂av中文字幕| 99久久夜色精品国产亚洲96 | 日韩欧美黄色网址| 日韩久久电影| 欧美成人剧情片在线观看| 九九久久免费视频| 国产精品综合| 国产精品美女www爽爽爽视频| 一区二区的视频| 高清久久久久久| 久久久av水蜜桃| 午夜在线小视频| 亚洲国产中文字幕| 免费在线观看的毛片| 欧洲午夜精品| 亚洲国产第一页| 亚洲一级片在线播放| 亚洲人metart人体| 668精品在线视频| 伊人成年综合网| 国产成人免费在线观看不卡| 久久亚洲一区二区| 免费黄网站在线播放| 亚洲国产毛片aaaaa无费看| 激情综合网婷婷| 美女精品视频在线| 亚洲欧美在线一区| 国产黄色片在线免费观看| 99国产精品久久久久久久| 国产精品久久久久aaaa九色| 性猛交富婆╳xxx乱大交天津| 91麻豆免费在线观看| 在线成人av电影| 麻豆蜜桃在线观看| 欧美老女人在线| 日本japanese极品少妇| 91精品国产调教在线观看| 8090成年在线看片午夜| 一区二区精品视频在线观看| 91麻豆免费观看| 红桃一区二区三区| 日韩免费小视频| 亚洲精品国产欧美| 国产1区2区3区4区| 欧美96一区二区免费视频| 成人免费观看网站| 免费在线观看黄色| 欧美视频自拍偷拍| 三级黄色片网站| 亚洲欧美一级二级三级| 国产精品看片资源| 欧美视频综合| 亚欧色一区w666天堂| 亚洲精品乱码久久久久久动漫| 久久不见久久见免费视频7| 欧美激情久久久久| 国产强伦人妻毛片| 国产精品久久三区| www黄色在线| 亚洲人成伊人成综合图片| 午夜精品久久久久久久久久久久久| 国产孕妇孕交大片孕| 国产精品无圣光一区二区| 黄色网页免费在线观看| 91久久偷偷做嫩草影院电| 久久精品国产v日韩v亚洲| 日本一本在线观看| 久久久99精品久久| 日本黄色三级大片| 亚洲人成伊人成综合图片| 456国产精品| 天堂成人在线观看| 亚洲成a人在线观看| 极品白嫩的小少妇| 激情综合在线| 国产伦精品一区二区三区四区免费 | 91性高潮久久久久久久| 欧美oldwomenvideos| 国产精品一区二区久久久| eeuss影院www在线播放| 欧洲精品在线观看| 久久久免费看片| 六月丁香婷婷色狠狠久久| 亚洲不卡1区| 久久毛片亚洲| 亚洲欧洲午夜一线一品| 亚洲国产成人精品女人久久| 国产午夜亚洲精品理论片色戒| 日韩欧美xxxx| 久久香蕉国产| 成人做爽爽免费视频| 成人福利网站| 亚洲精品一区二区三区福利| 国产精品18p| 久久免费精品国产久精品久久久久| 黄色片久久久久| 久久免费av| 亚洲自拍偷拍区| 麻豆免费在线| 一区二区欧美激情| 国产欧美日韩成人| 亚洲二区在线观看| 白白色免费视频| 韩国女主播成人在线| 妺妺窝人体色777777| 蜜乳av综合| 91精品在线观| 密臀av在线播放| www.xxxx精品| 天堂av在线播放| 精品视频一区二区三区免费| 日日骚一区二区三区| 久久久亚洲午夜电影| 亚洲涩涩在线观看| 亚洲经典自拍| 亚洲一区三区在线观看| 97视频一区| 国产精品美女视频网站| 日本片在线观看| 国产一区二区三区视频免费| 超碰在线观看99| 在线免费精品视频| 美女毛片在线观看| 中文字幕第一区第二区| 久久久久亚洲av无码网站| 欧美专区18| 国产91在线亚洲| 欧美日韩性在线观看| 成人蜜桃视频| 亚洲三级电影| 奇米成人av国产一区二区三区| 黄在线免费看| 一区二区三区国产视频| 囯产精品一品二区三区| 欧美探花视频资源| 亚洲影院在线播放| 亚洲制服丝袜一区| 五月天婷婷丁香网| 91最新地址在线播放| 无套白嫩进入乌克兰美女| 天堂久久久久va久久久久| 欧美性猛交内射兽交老熟妇| 日本a口亚洲| 国产伦精品一区二区三区视频黑人| 四虎成人精品一区二区免费网站| 国产91精品青草社区| 性爱视频在线播放| 日韩在线视频网| 黄色av免费在线看| 亚洲黄色av女优在线观看| 精品区在线观看| 7777精品伊人久久久大香线蕉| 日本视频免费观看| 午夜国产精品一区| 国产精彩视频在线| 亚洲一区二区三区精品在线| 一区二区三区四区五区| 国产精品久久久久影院老司| 欧洲美一区二区三区亚洲| 久久综合av免费| 五月开心播播网| 成人av在线看| 黄色在线免费播放| 国产成人精品午夜视频免费| 中文字幕在线视频精品| 久久精品国产精品青草| 男女男精品视频站| 轻轻草成人在线| 三级a三级三级三级a十八发禁止| 新67194成人永久网站| 日韩av黄色网址| 久久精品三级| 精品视频一区二区在线| 国产精品日韩| 日本a级片免费观看| 久久激情中文| 精品少妇无遮挡毛片| 日精品一区二区三区| 亚洲成人av免费看| 日本午夜精品一区二区三区电影| 色综合手机在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区视频网| 久久精品国产**网站演员| 亚洲三级在线观看视频| 国产在线不卡一区| 黑人巨大猛交丰满少妇| 成人午夜大片免费观看| 少妇饥渴放荡91麻豆| 久久久亚洲综合| www.99re6| 亚洲男人的天堂av| 国产一卡二卡在线播放| 欧美日韩激情小视频| 在线观看日本网站| 欧美少妇性性性| 国产国语亲子伦亲子| 亚洲国产精品电影| 全色精品综合影院| 色噜噜狠狠狠综合曰曰曰88av| 免费a级毛片在线播放| 久久99亚洲热视| 一二三四视频在线中文| 国产精品男女猛烈高潮激情| 高清一区二区中文字幕| 国产精品一区二区你懂得| 亚洲尤物av| 在线一区亚洲| 99精品国产一区二区青青牛奶| 国产一区亚洲二区三区| 国产一区二区中文字幕| 精品熟女一区二区三区| 国产欧美精品一区aⅴ影院| 欧美特级一级片| 欧美性猛交xxxx免费看漫画 | 精品久久久久一区二区国产| 人人九九精品| 成人444kkkk在线观看| 在线看的毛片| 91传媒免费看| 精品国产一级毛片| 久久久久久久久网| 亚洲欧美bt| 999热精品视频| 久久久国产精品午夜一区ai换脸| 午夜剧场免费在线观看| 狠狠躁夜夜躁人人躁婷婷91| 一道本无吗一区| 精品五月天久久| 手机在线免费av| 国产精品入口免费视频一| 激情亚洲另类图片区小说区| 亚洲韩国在线| 久久九九国产| 东京热av一区| 亚洲欧美激情一区二区| 黄瓜视频在线免费观看| 欧美成人激情免费网| 中文字幕在线免费| 欧亚精品在线观看| 91精品国产乱码久久久竹菊| 婷婷视频在线播放| 久久午夜精品一区二区| 国产人成视频在线观看| 亚洲人午夜精品天堂一二香蕉| 一级一片免费看| 日韩精品在线观| xxxcom在线观看| 999日本视频| 久久久久久久久久久9不雅视频| 久久人妻精品白浆国产| av成人老司机| 国产一级特黄毛片| 欧美不卡视频一区| 搞黄网站在线观看| 国产欧美日韩中文字幕| 精品视频久久| 亚洲精品乱码久久久久久自慰| 波多野结衣在线一区| 久久精品免费在线| 日韩精品一区二区三区三区免费| 国产福利视频在线| 成人做爽爽免费视频| 亚洲电影影音先锋| 在线一区二区不卡| 亚洲丝袜另类动漫二区| 136福利视频导航| 爽爽爽爽爽爽爽成人免费观看| 免费观看成人性生生活片| 日韩国产美国| 蜜臀久久久久久久| 殴美一级黄色片| 欧美精品v国产精品v日韩精品 | 一区二区中文视频| 亚洲网站在线免费观看| 色播久久人人爽人人爽人人片视av| 性高爱久久久久久久久| 日韩av电影免费在线观看| 久久久蜜桃一区二区人| 精品无码人妻一区二区免费蜜桃| 在线一区二区三区做爰视频网站| 国产福利在线视频| 国产美女久久久| 中文字幕一区二区三区乱码图片| 手机在线播放av| 亚洲超碰精品一区二区| 香蕉av在线播放| 国产精品mp4| 色综合狠狠操| 三大队在线观看| 亚洲成人av电影在线| 日本不卡免费播放| 国产精品日韩精品| 91精品蜜臀一区二区三区在线| 亚洲欧美日韩中文字幕在线观看| 亚洲一区二区av在线| 亚洲av成人精品日韩在线播放| 日本午夜精品理论片a级appf发布| 欧美艳星介绍134位艳星| 天天综合网久久| 亚洲午夜精品在线| 欧美777四色影视在线| 国产精品一区二区三区免费视频| 亚洲理论电影网| 99久久人妻无码中文字幕系列| 欧美少妇xxx| 美足av综合网| 日本午夜精品电影| 国产一区二区三区久久久| 精品视频在线观看免费| 亚洲免费av片| 综合久久伊人| 欧美日韩亚洲一| 亚洲天堂精品在线观看| 天堂在线视频观看| 国产欧美日韩专区发布| 99成人免费视频| 亚洲欧美精品aaaaaa片| 亚洲国产三级网| 在线观看欧美| 黄色片久久久久| 亚洲自拍与偷拍| 91九色在线porn| 国产一区二区三区高清视频| 美国三级日本三级久久99| 国产精品.www|