首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
嵌入式Linux系统下图形库讲解及图形用户界面
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-17  

1)无任何硬件加速能力。

2)图形引擎中存在许多低效算法,同时未经任何优化。比如在直线或者圆弧绘图函数中,存在低效的逐点判断剪切的问题。

3)代码质量较差。由于该项目缺少一个强有力的核心代码维护人员,因此代码质量参差不齐,影响整体系统稳定性。这也是 MicroWindows 长时间停留在 0.89Pre7 版本上的原因。

MicroWindows 采用 MPL 条款发布(该条款基本类似 LGPL 条款)。

3.2 OpenGUI

OpenGUI(http://www.tutok.sk/fastgl/)在 Linux 系统上存在已经很长时间了。最初的名字叫 FastGL,只支持 256 色的线性显存模式,但目前也支持其他显示模式,并且支持多种操作系统平台,比如 MS-DOS、QNX 和 Linux 等等,不过目前只支持 x86 硬件平台。OpenGUI 也分为三层。最低层是由汇编编写的快速图形引擎;中间层提供了图形绘制 API,包括线条、矩形、圆弧等,并且兼容于 Borland 的 BGI API。第三层用 C++ 编写,提供了完整的 GUI 对象集。

OpenGUI 采用 LGPL 条款发布。OpenGUI 比较适合于基于 x86 平台的实时系统,可移植性稍差,目前的发展也基本停滞。

3.3 Qt/Embedded

Qt/Embedded是著名的 Qt 库开发商 TrollTech(http://www.trolltech.com/)发布的面向嵌入式系统的 Qt 版本。因为 Qt 是 KDE 等项目使用的 GUI 支持库,所以有许多基于 Qt 的 X Window 程序可以非常方便地移植到 Qt/Embedded 版本上。因此,自从 Qt/Embedded 以 GPL 条款形势发布以来,就有大量的嵌入式 Linux 开发商转到了 Qt/Embedded 系统上。比如韩国的 Mizi 公司,台湾省的某些嵌入式 Linux 应用开发商等等。

不过,在笔者看来,Qt/Embedded 还有一些问题值得开发者注意:

1)目前,该系统采用两种条款发布,其中包括 GPL 条款。对函数库使用 GPL 条款,意味着其上的应用需要遵循 GPL 条款。当然了,如果要开发商业程序,TrollTech 也允许你采用另外一个授权条款,这时,就必须向 TrollTech 交纳授权费用了。

2)Qt/Embedded 是一个 C++ 函数库,尽管 Qt/Embedded 声称可以裁剪到最少 630K,但这时的 Qt/Embedded 库已经基本上失去了使用价值。低的程序效率、大的资源消耗也对运行 Qt/Embedded 的硬件提出了更高的要求。

3)Qt/Embedded 库目前主要针对手持式信息终端,因为对硬件加速支持的匮乏,很难应用到对图形速度、功能和效率要求较高的嵌入式系统当中,比如机顶盒、游戏终端等等。

4)Qt/Embedded 提供的控件集风格沿用了 PC 风格,并不太适合许多手持设备的操作要求。

5)Qt/Embedded 的结构过于复杂,很难进行底层的扩充、定制和移植,尤其是那个用来实现 signal/slot 机制的著名的 moc 文件。

因为上述这些原因,目前所见到的 Qt/Embedded 的运行环境,几乎是清一色基于 StrongARM 的 iPAQ。

3.4 MiniGUI

MiniGUI是由笔者主持,并由许多自由软件开发人员支持的一个自由软件项目(遵循 LGPL 条款发布),其目标是为基于 Linux 的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。该项目自 1998 年底开始到现在,已历经 3 年多的开发过程。到目前为止,已经非常成熟和稳定。目前,我们已经正式发布了稳定版本 1.0.9,并且开始了新版本系列的开发,即 MiniGUI Version 1.1.x,该系列的正式版也即把发布。

在 MiniGUI 几年的发展过程中,有许多值得一提的技术创新点,正是由于这些技术上的创新,才使得 MiniGUI 更加适合实时嵌入式系统;而且 MiniGUI 的灵活性非常好,可以应用在包括手持设备、机顶盒、游戏终端等等在内的各种高端或者低端的嵌入式系统当中。这些技术创新包括:

1)图形抽象层。图形抽象层对顶层 API 基本没有影响,但大大方便了 MiniGUI 应用程序的移植、调试等工作。目前包含三个图形引擎,SVGALib、LibGGI 以及直接基于 Linux FrameBuffer 的 Native Engine,利用 LibGGI 时,可在 X Window 上运行 MiniGUI 应用程序,并可非常方便地进行调试。与图形抽象层相关的还有输入事件的抽象层。MiniGUI 现在已经被证明能够在基于 ARM、MIPS、StrongARM 以及 PowerPC 等的嵌入式系统上流畅运行。

2)多字体和多字符集支持。这部分通过设备上下文(DC)的逻辑字体(LOGFONT)实现,不管是字体类型还是字符集,都可以非常方便地进行扩充。应用程序在启动时,可切换系统字符集,比如 GB、BIG5、EUCKR、UJIS。利用 DrawText 等函数时,可通过指定字体而获得其他字符集支持。对于一个窗口来说,同时显示不同语种的文字是可能的。MiniGUI 的这种字符集支持不同于传统通过 UNICODE 实现的多字符集支持,这种实现更加适合于嵌入式系统。

3)两个不同架构的版本。最初的 MiniGUI 运行在 PThread 库之上,这个版本适合于功能单一的嵌入式系统,但存在系统健壮性不够的缺点。在 0.9.98 版本中,我们引入了 MiniGUI-Lite 版本,这个版本在提高系统健壮性的同时,通过一系列创新途径,避免了传统 C/S 结构的弱点,为功能复杂的嵌入式系统提供了一个高效、稳定的 GUI 系统。

在 MiniGUI 1.1.0 版本的开发中,我们参照 SDL 和 Allegro 的图形部分,重新设计了图形抽象层,并增强了图形功能,同时增强了 MiniGUI-Lite 版本的某些特性。这些特性包括:

1)MiniGUI-Lite 支持层的概念。同一层可容纳多个能够同时显示的客户程序,并平铺在屏幕上显示。

2)新的 GAL 能够支持硬件加速能力,并能够充分使用显示内存;新 GAL 之上的新 GDI 接口得到进一步增强。新的 GDI 接口可以支持 Alpha 混和、透明位块传输、光栅操作、YUV覆盖、Gamma 校正,以及高级图形功能(椭圆、多边形、样条曲线)等等。

共4页: 上一页 [1] [2] 3 [4] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
·嵌入式uClinux的内核结构和开发
  相关文章
·嵌入式Linux操作系统名词资源讲
·嵌入式Linux系统下的MiniGUI研究
·Sharp Zaurus 手持式系统是嵌入
·文档分析__嵌入式Linux在网络处
·嵌入式Linux移植实时设备驱动程
·基于嵌入式Linux的PMP系统设计与
·嵌入式Linux的DiskOnChip设备驱
·嵌入式Linux系统的低功耗策略研
·嵌入式Linux系统的触摸屏驱动开
·一种嵌入式Linux平台的软硬件设
·Qt/Embedded在嵌入式Linux中的应
·用Linux构造嵌入式实时应用系统

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!