資料介紹
1 引言
目前,三維用戶圖形界面已成為移動嵌入式設備的一個
新的發展趨勢。三維用戶圖形界面的實現依賴于嵌入式軟件
平臺中的 3D 圖形庫。目前,嵌入式 3D 圖形庫已有業界的工
業標準 OpenGL ES,它是專門為嵌入式設備設計的跨平臺的
三維圖形 API 標準,是 Khronos 協會從 OpenGL 裁剪定制而來
的。基于 OpenGL ES 的 API 來開發應用程序,需要熟悉復雜
的圖形 API 和豐富的數學知識,具有一定的難度。為了能夠
快速簡單地開發三維應用,OpenedHand 公司開發了一個開源
UI 圖形庫 Clutter。
Clutter 用于創建快速、視覺效果豐富、支持三維圖形和動
畫效果的用戶圖形程序。Clutter 仍然使用 OpenGL ES 作為底
層的圖形渲染庫,但是向開發者屏蔽了 GL 的 API,對其復雜
接口進行了封裝。與 OpenGL ES 相比,Clutter 的 API 易用、
高效、并且具有很大的靈活性。
2 Clutter 的系統設計
Clutter 的系統架構可以分為 3 個層次:核心模塊、后端實
現以及系統平臺支持,如圖 1 所示。Clutter 的核心模塊包括界
面元素模塊 UI elements、GL 抽象層 COGL、UI 腳本模塊 JSon
以及事件處理模塊 Event Loop。Clutter 的后端實現層是指
Clutter 與窗口系統 X11 以及 EGL 的集成部分。系統平臺支持
層是指 Clutter 對系統平臺的依賴部分,包括 OpenGL ES,
EGL,以及 X Window 等。
界面元素GL 抽象庫事件處理UI 描述腳本Clutter
UI elementsCOGLEvent LoopJSon核心模塊
Clutter-EglX 后端Clutter-X11 后端Clutter
后端實現
OpenGL ESEGLX11Pango系統平臺
2.1 界面元素模塊
Clutter 的繪圖模型采用的是基于場景圖的保留模式。場
景具有三維空間,場景中的每個對象都代表了三維空間中的
一個二維曲面,采用二維圖形來表達三維效果。場景圖的頂
層容器稱為 Stage,場景圖中的基本界面元素稱為 Actor。Stage
就是一個預設的三維空間。標準的 Actor 具有 2D 形狀,能夠
在三維空間進行縮放、旋轉、部分透明等變換。
可以將多個 Actor 組合成一個 Group,然后對這個 Group
作變換時,Group 中的所有 Actor 就會跟著一起改變,相當的
方便。多個 Group 還可以再組合成另一個 group 里,這樣可以
很方便去設計一些動畫。
2.2 GL 抽象層
COGL 是 Clutter 定義的一個 GL 的抽象庫,它提供了一套
通用的渲染 API,對 OpenGL 1.4 及更高版本, OpenGL ES 1.1
和 OpenGL ES 2.0 進行了封裝。其目的是增強 Clutter 在各個
OpenGL 和 OpenGL ES 版本之間的可移植性。
2.3 基于腳本的 UI 描述
JSon 是 Clutter 提供的一種描述用戶圖形界面的腳本語言,
它的語法源自 JSON (JavaScript Objective Notation)。JSon 所描
述的每一個 UI 元素都稱之為對象。JSon 支持的對象類型十分
廣泛,不僅包括所有的 Actor 和 Container,還支持 Behavior 對
象。應用程序動態加載 JSon 描述文件并獲取其中的對象,來
構建 UI 圖形界面。
2.4 Clutter 的后端實現
Clutter 作為一個 GUI 圖形庫,必須和底層的窗口系統集
成。目前,Clutter 提供了基于 X Window 的實現:Clutter-X11
后端和 Clutter-eglx 后端。Clutter 后端對象的繼承關系如圖 2Clutter 在Linux 中的探究
- Linux總線、設備、驅動模型的探究 7次下載
- 探究USB協議架構及驅動架構 1次下載
- 探究LRC產品在智能手機中的應用.pdf 13次下載
- 探究高壓放大器基于壓電陶瓷損傷識別中的應用 3次下載
- 探究高壓放大器基于干涉儀的設計與優化中的應用 9次下載
- 探究labview如何與基恩士PLC通信 66次下載
- MATLAB在電路中的應用PPT課件下載 31次下載
- Linux系統中EXP命令詳解質量匯總 1次下載
- 伙伴算法如何才能在Linux內核中實現應用及其改進 14次下載
- 在Linux操作鴻蒙開發板實現Helloworld程序 4次下載
- 如何學習Linux學習Linux的詳細步驟說明 63次下載
- 在Linux中限制用戶空間 0次下載
- 基于JPEG在嵌入式Linux中的應用 6次下載
- 嵌入式Linux在航空拍攝中的應用 50次下載
- Linux在嵌入式系統中的實現
- 在Linux中查看IP地址的方法 7773次閱讀
- 詳解Linux中的權限控制 639次閱讀
- 使用 PREEMPT_RT 在 Ubuntu 中構建實時 Linux 內核 2658次閱讀
- Linux操作系統中如何按下PCIe的復位鍵 1687次閱讀
- linux中管道符的使用 4292次閱讀
- 深入探索Linux中的C語言 2015次閱讀
- 如何在Linux中查看隱藏文件 1.5w次閱讀
- 在Linux系統中系統變量存在哪里呢? 1955次閱讀
- linux實際使用中的技巧 764次閱讀
- Linux內核中整合對 Rust 的支持 1195次閱讀
- 詳談Linux操作系統中的顯示服務器 2056次閱讀
- 新手必知:什么是 Linux 中的桌面環境? 2749次閱讀
- Win10 中如何運行 Linux 發行版? 3685次閱讀
- 在linux中如何查詢端口被占用的情況 5382次閱讀
- 在 Linux 中如何編寫基本的 udev 規則并了解其基本的概念和邏輯 5582次閱讀
下載排行
本周
- 1EMC電路設計工程師必備的EMC基礎
- 0.42 MB | 4次下載 | 2 積分
- 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數據手冊
- 1.19 MB | 1次下載 | 免費
- 3低壓降肖特基整流管SR340L數據手冊
- 0.78 MB | 1次下載 | 免費
- 4ZX8002E 觸摸調光LED集成IC數據手冊
- 2.27 MB | 次下載 | 免費
- 5SOD-323塑料封裝ESD保護二極管SD05T系列規格書
- 1.07 MB | 次下載 | 免費
- 6SOT-23塑料封裝ESD保護二極管SMxx Series系列規格書
- 0.93 MB | 次下載 | 免費
- 7高效率整流二極管HER151 THRU HER158數據手冊
- 0.54 MB | 次下載 | 免費
- 8低壓降肖特基整流管SL22 THRU SL210數據手冊
- 1.03 MB | 次下載 | 免費
本月
- 1三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 2運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 3蘋果iphone 11電路原理圖
- 4.98 MB | 11次下載 | 5 積分
- 4TL494工業用開關電源原理圖資料
- 0.22 MB | 10次下載 | 1 積分
- 5常用電子元器件介紹
- 3.21 MB | 8次下載 | 免費
- 6QW2893應急燈專用檢測芯片
- 590.40 KB | 4次下載 | 免費
- 7相關協議信號總結
- 0.94 MB | 4次下載 | 免費
- 8EMC電路設計工程師必備的EMC基礎
- 0.42 MB | 4次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183344次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論