资料介绍
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 中的探究
- 探究在线修复立磨摇臂轴承室磨损的解决方案 2次下载
- Linux总线、设备、驱动模型的探究 7次下载
- 探究USB协议架构及驱动架构 1次下载
- 探究LRC产品在智能手机中的应用.pdf 13次下载
- 探究在线修复管束机轴承位磨损的全过程 12次下载
- 探究快速维修压榨辊轴承位磨损的解决方案 2次下载
- 探究labview如何与基恩士PLC通信 58次下载
- 探究车辆统筹信息管理系统 2次下载
- 探究机动车保险统筹管理系统 0次下载
- 探究实用电子测量技术及其电路精解 3次下载
- Linux远程SSH登陆软件MobaXterm_Portable_v20.1 15次下载
- 面向Linux的远程桌面软件VNC-Viewer-6.17.731-Windo 0次下载
- Linux系统中EXP命令详解质量汇总 1次下载
- ADB工具(安卓 & Linux调试)下载 21次下载
- 太阳能的电池的探究实验 2次下载
- linux和windows的区别 linux系统一般用来干嘛 252次阅读
- Linux 下的make 工具和 Makefile 534次阅读
- linux中管道符的使用 3229次阅读
- GNU/Linux和Linux的区别在哪? 1055次阅读
- Linux基础中的软件管理 527次阅读
- Linux基础知识中的Shell 591次阅读
- 如何在Linux使用ps命令 1572次阅读
- 一文了解Linux调度器开放给用户空间的接口 798次阅读
- Linux搭建Web服务 5584次阅读
- Linux教程之Linux常用命令大全 5366次阅读
- Linux学习书籍推荐Linux就该这么学 4566次阅读
- 深度探究3GPP里的NOMA技术 4519次阅读
- 嵌入式Linux系统开发入门基础 1697次阅读
- 基于Linux进程管理的详细剖析 3453次阅读
- stm32能跑linux吗 2.8w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 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次下载 | 免费
评论
查看更多