资料介绍
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通信 64次下载
- MATLAB在电路中的应用PPT课件下载 31次下载
- Linux系统中EXP命令详解质量汇总 1次下载
- 伙伴算法如何才能在Linux内核中实现应用及其改进 14次下载
- 在Linux操作鸿蒙开发板实现Helloworld程序 4次下载
- 如何学习Linux学习Linux的详细步骤说明 63次下载
- 在Linux中限制用户空间 0次下载
- 基于JPEG在嵌入式Linux中的应用 6次下载
- 嵌入式Linux在航空拍摄中的应用 50次下载
- Linux在嵌入式系统中的实现
- 在Linux中查看IP地址的方法 3896次阅读
- 详解Linux中的权限控制 209次阅读
- 使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核 1284次阅读
- Linux操作系统中如何按下PCIe的复位键 1183次阅读
- linux中管道符的使用 4058次阅读
- 深入探索Linux中的C语言 1228次阅读
- 如何在Linux中查看隐藏文件 1.5w次阅读
- 在Linux系统中系统变量存在哪里呢? 1735次阅读
- linux实际使用中的技巧 666次阅读
- Linux内核中整合对 Rust 的支持 1103次阅读
- 详谈Linux操作系统中的显示服务器 1929次阅读
- 新手必知:什么是 Linux 中的桌面环境? 2630次阅读
- Win10 中如何运行 Linux 发行版? 3572次阅读
- 在linux中如何查询端口被占用的情况 5268次阅读
- 在 Linux 中如何编写基本的 udev 规则并了解其基本的概念和逻辑 5477次阅读
下载排行
本周
- 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次下载 | 免费
评论
查看更多