資料介紹
1 引言
目前,三維用戶圖形界面已成為移動嵌入式設備的一個
新的發(fā)展趨勢。三維用戶圖形界面的實現依賴于嵌入式軟件
平臺中的 3D 圖形庫。目前,嵌入式 3D 圖形庫已有業(yè)界的工
業(yè)標準 OpenGL ES,它是專門為嵌入式設備設計的跨平臺的
三維圖形 API 標準,是 Khronos 協(xié)會從 OpenGL 裁剪定制而來
的?;?OpenGL ES 的 API 來開發(fā)應用程序,需要熟悉復雜
的圖形 API 和豐富的數學知識,具有一定的難度。為了能夠
快速簡單地開發(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 個層次:核心模塊、后端實
現以及系統(tǒng)平臺支持,如圖 1 所示。Clutter 的核心模塊包括界
面元素模塊 UI elements、GL 抽象層 COGL、UI 腳本模塊 JSon
以及事件處理模塊 Event Loop。Clutter 的后端實現層是指
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
后端實現
OpenGL ESEGLX11Pango系統(tǒng)平臺
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 對
象。應用程序動態(tài)加載 JSon 描述文件并獲取其中的對象,來
構建 UI 圖形界面。
2.4 Clutter 的后端實現
Clutter 作為一個 GUI 圖形庫,必須和底層的窗口系統(tǒng)集
成。目前,Clutter 提供了基于 X Window 的實現:Clutter-X11
后端和 Clutter-eglx 后端。Clutter 后端對象的繼承關系如圖 2Clutter 在Linux 中的探究
- Linux總線、設備、驅動模型的探究 7次下載
- 探究USB協(xié)議架構及驅動架構 1次下載
- 探究LRC產品在智能手機中的應用.pdf 13次下載
- 探究高壓放大器基于壓電陶瓷損傷識別中的應用 3次下載
- 探究高壓放大器基于干涉儀的設計與優(yōu)化中的應用 9次下載
- 探究labview如何與基恩士PLC通信 66次下載
- MATLAB在電路中的應用PPT課件下載 31次下載
- Linux系統(tǒng)中EXP命令詳解質量匯總 1次下載
- 伙伴算法如何才能在Linux內核中實現應用及其改進 14次下載
- 在Linux操作鴻蒙開發(fā)板實現Helloworld程序 4次下載
- 如何學習Linux學習Linux的詳細步驟說明 63次下載
- 在Linux中限制用戶空間 0次下載
- 基于JPEG在嵌入式Linux中的應用 6次下載
- 嵌入式Linux在航空拍攝中的應用 50次下載
- Linux在嵌入式系統(tǒng)中的實現
- 在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)的設計與實現
- 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數字電路基礎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次下載 | 免費
評論