嵌入式Linux系统图形及图形用户界面(5)

文章作者 100test 发表时间 2007:03:14 16:36:16
来源 100Test.Com百考试题网


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 校正,以及高级图形功能(椭圆、多边形、样条曲线)等等。

MiniGUI 新版本在图形方面的增强和提高,将大大扩展它的应用领域,希望能够对嵌入式 Linux 上的多媒体应用、游戏开发提供支持。

纵观嵌入式 Linux 系统上的各种图形系统方案,我们发现,许多图形系统(如 Qt/Embedded 和 MicoroWindows),只注重手持设备上的需求,却不太注重其他应用领域的需求,而其他许多需要图形支持的嵌入式 Linux 系统却需要许多独特的、高级的图形功能,而不仅仅是图形用户界面。为此,在接下来的开发中,我们还将在如下领域继续开发 MiniGUI:

1)提供运行在 MiniGUI 上的 JAVA 虚拟机 AWT 组件的实现。

2)提供 MiniGUI 上的 OpenGL 实现。

3)提供类 QT 控件集的 C 封装。

3)提供窗口/控件风格主题支持。

4)在 MiniGUI-Lite 当中增加对矢量字体的支持。

4 小结

综上所述,笔者认为在嵌入式 Linux 图形领域,还有许多有待开发人员仔细研究和解决的问题。MiniGUI 的新的发展,也正源于对这些需求的认识之上。我们也衷心希望能够有更多的自由软件开发人员加盟 MiniGUI 的开发,一同开发新的嵌入式 Linux 的图形系统。



相关文章


Linux操作系统下的网络邻居软件大全(2)
Linux操作系统下的网络邻居软件大全(1)
嵌入式Linux系统图形及图形用户界面(5)
嵌入式Linux系统图形及图形用户界面(3)
嵌入式Linux系统图形及图形用户界面(4)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛