日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Wayland 源码解析之代码结构

發(fā)布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Wayland 源码解析之代码结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?來源:http://blog.csdn.net/basilc/article/details/8074895

?

獲取、編譯 Wayland 及其依賴庫可參考 Wayland 官方網(wǎng)站的 Build 指南:http://wayland.freedesktop.org/building.html。

Wayland 實現(xiàn)的代碼組成可以分成以下四部分:

1. ?Wayland 庫

Wayland 中最核心的部分,Wayland 協(xié)議的大部分實現(xiàn)位于這里。

1)???工具程序(wayland-scanner)

分析 Wayland 協(xié)議文件,并生成相應(yīng)的頭文件及代碼文件。

源碼文件列表:

wayland/src/scanner.c

?

2)???工具庫

供其他庫、程序使用的工具函數(shù)、接口、結(jié)構(gòu)等。

源碼文件列表:

wayland/src/connection.c???????????????????????????

wayland/src/wayland-util.c?????????????????????????

wayland/src/wayland-util.h?????????????????????????

wayland/src/wayland-os.c???????????????????????????

wayland/src/wayland-os.h???????????????????????????

wayland/src/wayland-private.h

?

3)???Client 庫

供 Client 使用的樁接口(stub interfaces)及 event listener 結(jié)構(gòu)定義。

源碼文件列表:

wayland/src/wayland-protocol.c?????????????????????

wayland/src/wayland-client.c

?

4)???Server 庫

Wayland 核心協(xié)議的實現(xiàn)。

源碼文件列表:

wayland/src/wayland-protocol.c?????????????????????

wayland/src/wayland-server.c???????????????????????

wayland/src/wayland-shm.c??????????????????????????

wayland/src/data-device.c??????????????????????????

wayland/src/event-loop.c

?

5)???Cursor 庫

Cursor 相關(guān)功能的實現(xiàn)。不作為重點分析部分。

源碼文件列表:

wayland/cursor/wayland-cursor.h

wayland/cursor/wayland-cursor.c???????????????????????

wayland/cursor/os-compatibility.c?????????????????????

wayland/cursor/os-compatibility.h?????????????????????

wayland/cursor/xcursor.c??????????????????????????????

wayland/cursor/xcursor.h

?

6)???公用頭文件

wayland/src/wayland-util.h

wayland/src/wayland-server-protocol.h

wayland/src/wayland-server.h??

wayland/src/wayland-client-protocol.h?????????????

wayland/src/wayland-client.h?????????

wayland/src/wayland-version.h

wayland/src/wayland-egl.h

?

2.??????EGL 相關(guān)實現(xiàn)

EGL surface 與 Waylandsurface 之間的互相轉(zhuǎn)換,代碼位于 mesa 中。

1)???libEGL 中的代碼

mesa/src/egl/drivers/dri2/platform_wayland.c

mesa/src/egl/wayland/wayland-drm/wayland-drm.c

mesa/src/egl/wayland/wayland-drm/wayland-drm-protocol.c

mesa/src/egl/wayland/wayland-drm/wayland-drm-client-protocol.h

mesa/src/egl/wayland/wayland-drm/wayland-drm-server-protocol.h

?

2)???libwayland-egl

mesa/src/egl/wayland/wayland-egl/wayland-egl-priv.h

mesa/src/egl/wayland/wayland-egl/wayland-egl.c

?

3.??????Weston (WaylandCompositor 的參考實現(xiàn))

1)? Compositor

合成器的一個參考實現(xiàn),代碼較多,選取幾個關(guān)鍵部分進行分析,如事件處理、圖形輸出等。

重點分析的源碼列表:

weston/src/compositor.c

weston/src/compositor-drm.c

weston/src/evdev.c

?

2)? Shell (作為Compositor的插件實現(xiàn))

可以認為是一個窗口管理器或桌面管理插件。

重點分析的源碼列表:

weston/src/shell.c

?

3)? Clients

客戶端程序,如 Terminal 等。不作為重點分析,僅在分析交互流程時,選取關(guān)鍵代碼段進行分析。

?

4.??????協(xié)議

一系列的 XML 文件,定義 Wayland的核心協(xié)議及擴展協(xié)議。

核心協(xié)議:

wayland/protocol/wayland.xml

mesa/src/egl/wayland/wayland-drm/wayland-drm.xml(很重要,可以認為是核心協(xié)議)

?

擴展協(xié)議(不作為重點分析對象):

weston/protocol/desktop-shell.xml

weston/protocol/tablet-shell.xml

?

另外還有一些單元測試代碼,位于 wayland 和weston 的tests?目錄,主要用來測試通用的 utility 函數(shù),查看這些代碼對理解 utility 函數(shù)的用途是很有幫助的。

轉(zhuǎn)載于:https://www.cnblogs.com/cnland/archive/2013/01/15/2861319.html

總結(jié)

以上是生活随笔為你收集整理的Wayland 源码解析之代码结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。