資料介紹
1 引言
目前,三維用戶圖形界面已成為移動嵌入式設備的一個
新的發(fā)展趨勢。三維用戶圖形界面的實現(xiàn)依賴于嵌入式軟件
平臺中的 3D 圖形庫。目前,嵌入式 3D 圖形庫已有業(yè)界的工
業(yè)標準 OpenGL ES,它是專門為嵌入式設備設計的跨平臺的
三維圖形 API 標準,是 Khronos 協(xié)會從 OpenGL 裁剪定制而來
的?;?OpenGL ES 的 API 來開發(fā)應用程序,需要熟悉復雜
的圖形 API 和豐富的數(shù)學知識,具有一定的難度。為了能夠
快速簡單地開發(fā)三維應用,OpenedHand 公司開發(fā)了一個開源
UI 圖形庫 Clutter。
Clutter 用于創(chuàng)建快速、視覺效果豐富、支持三維圖形和動
畫效果的用戶圖形程序。Clutter 仍然使用 OpenGL ES 作為底
層的圖形渲染庫,但是向開發(fā)者屏蔽了 GL 的 API,對其復雜
接口進行了封裝。與 OpenGL ES 相比,Clutter 的 API 易用、
高效、并且具有很大的靈活性。
2 Clutter 的系統(tǒng)設計
Clutter 的系統(tǒng)架構可以分為 3 個層次:核心模塊、后端實
現(xiàn)以及系統(tǒng)平臺支持,如圖 1 所示。Clutter 的核心模塊包括界
面元素模塊 UI elements、GL 抽象層 COGL、UI 腳本模塊 JSon
以及事件處理模塊 Event Loop。Clutter 的后端實現(xiàn)層是指
Clutter 與窗口系統(tǒng) X11 以及 EGL 的集成部分。系統(tǒng)平臺支持
層是指 Clutter 對系統(tǒng)平臺的依賴部分,包括 OpenGL ES,
EGL,以及 X Window 等。
界面元素GL 抽象庫事件處理UI 描述腳本Clutter
UI elementsCOGLEvent LoopJSon核心模塊
Clutter-EglX 后端Clutter-X11 后端Clutter
后端實現(xiàn)
OpenGL ESEGLX11Pango系統(tǒng)平臺
2.1 界面元素模塊
Clutter 的繪圖模型采用的是基于場景圖的保留模式。場
景具有三維空間,場景中的每個對象都代表了三維空間中的
一個二維曲面,采用二維圖形來表達三維效果。場景圖的頂
層容器稱為 Stage,場景圖中的基本界面元素稱為 Actor。Stage
就是一個預設的三維空間。標準的 Actor 具有 2D 形狀,能夠
在三維空間進行縮放、旋轉、部分透明等變換。
可以將多個 Actor 組合成一個 Group,然后對這個 Group
作變換時,Group 中的所有 Actor 就會跟著一起改變,相當?shù)?/p>
方便。多個 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 對
象。應用程序動態(tài)加載 JSon 描述文件并獲取其中的對象,來
構建 UI 圖形界面。
2.4 Clutter 的后端實現(xiàn)
Clutter 作為一個 GUI 圖形庫,必須和底層的窗口系統(tǒng)集
成。目前,Clutter 提供了基于 X Window 的實現(xiàn):Clutter-X11
后端和 Clutter-eglx 后端。Clutter 后端對象的繼承關系如圖 2Clutter 在Linux 中的探究
- Linux總線、設備、驅動模型的探究 7次下載
- 探究USB協(xié)議架構及驅動架構 1次下載
- 探究LRC產(chǎn)品在智能手機中的應用.pdf 13次下載
- 探究高壓放大器基于壓電陶瓷損傷識別中的應用 3次下載
- 探究高壓放大器基于干涉儀的設計與優(yōu)化中的應用 9次下載
- 探究labview如何與基恩士PLC通信 66次下載
- MATLAB在電路中的應用PPT課件下載 31次下載
- Linux系統(tǒng)中EXP命令詳解質量匯總 1次下載
- 伙伴算法如何才能在Linux內核中實現(xiàn)應用及其改進 14次下載
- 在Linux操作鴻蒙開發(fā)板實現(xiàn)Helloworld程序 4次下載
- 如何學習Linux學習Linux的詳細步驟說明 63次下載
- 在Linux中限制用戶空間 0次下載
- 基于JPEG在嵌入式Linux中的應用 6次下載
- 嵌入式Linux在航空拍攝中的應用 50次下載
- Linux在嵌入式系統(tǒng)中的實現(xiàn)
- 在Linux中查看IP地址的方法 7773次閱讀
- 詳解Linux中的權限控制 639次閱讀
- 使用 PREEMPT_RT 在 Ubuntu 中構建實時 Linux 內核 2658次閱讀
- Linux操作系統(tǒng)中如何按下PCIe的復位鍵 1687次閱讀
- linux中管道符的使用 4292次閱讀
- 深入探索Linux中的C語言 2015次閱讀
- 如何在Linux中查看隱藏文件 1.5w次閱讀
- 在Linux系統(tǒng)中系統(tǒng)變量存在哪里呢? 1955次閱讀
- linux實際使用中的技巧 764次閱讀
- Linux內核中整合對 Rust 的支持 1195次閱讀
- 詳談Linux操作系統(tǒng)中的顯示服務器 2056次閱讀
- 新手必知:什么是 Linux 中的桌面環(huán)境? 2749次閱讀
- Win10 中如何運行 Linux 發(fā)行版? 3685次閱讀
- 在linux中如何查詢端口被占用的情況 5382次閱讀
- 在 Linux 中如何編寫基本的 udev 規(guī)則并了解其基本的概念和邏輯 5582次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多