MiniGUI
特点优势

MiniGUI 为嵌入式 Linux 系统提供了完整的图形系统支持，是全球针对嵌入式 Linux仅有的两个商用嵌入式GUI系统之一。MiniGUI为嵌入式Linux 系统提供了完整的多进程支持；可以 MiniGUI-Processes、MiniGUI-Threads或者MiniGUI-Standalone 三种运行模式运行。
MiniGUI 的主要技术特性描述如下：
硬件适配性：
可运行于各种含有 MMU(内存管理单元)的 32 位处理器架构之上，如 ix386、ARM、MIPS、PowerPC 等。
支持低端显示设备(比如单色 LCD)和高端显示设备(8 位色及以上显示设备)。通过 MiniGUI 的图形抽象层及图形引擎技术，还可以支持特殊的显示设备，比如 YUV 显示设备。对显示设备分辨率无最大和最小限制。
副屏支持。当系统中有多个视频设备时，可将一个作为 MiniGUI 的主屏，实现完整的多窗口系统；而其它设备作为副屏，在其上通过 MiniGUI 的图形接口来实现文字渲染、图形显示等功能。
可支持各种输入设备，如 PC 键盘、PC 鼠标、小键盘(Keypad)、触摸屏、遥控器等等。
多种键盘布局的支持。MiniGUI 除支持常见的美式 PC 键盘布局之外，还支持法语、德语等西欧语种的键 盘布局。
资源消耗:
MiniGUI 的静态存储随配置选项的不同而不同，最少需占用 1MB 静态存储空间。
MiniGUI 启动后，初始占用 1MB 动态存储空间。建议系统内存为 8MB 以上。
操作系统适配性:
支持 Linux 操作系统(非 uClinux 操作系统)，可以 MiniGUI-Processes、MiniGUI-Threads 或者 MiniGUI-Standalone 三种运行模式运行。
内建资源支持。可以将 MiniGUI 所使用的资源，诸如位图、图标和字体等编译到函数库中，该特性可提高 MiniGUI 的初始化速度，并且非常适合无文件系统支持的实时嵌入式操作系统。
针对嵌入式系统的特殊支持，包括一般性的 I/O 流操作，字节序相关函数等。
窗口子系统特性：
完备的多窗口机制和消息传递机制。使用 MiniGUI-Threads 运行模式时，可在不同线程中创建主窗口，并支持线程间的消息传递；使用 MiniGUI-Processes 运行模式时，支持完整的多进程窗口系统。
对话框和消息框支持。
提供常用的控件类，包括静态文本框、按钮、单行和多行编辑框、列表框、组合框、菜单按钮、进度条、滑块、属性页、工具栏、树型控件、月历控件、旋钮控件、酷工具栏、网格控件、动画控件等。
其它 GUI 元素，包括菜单、加速键、插入符、定时器等。
图形子系统特性：
提供有增强 GDI 函数，包括光栅操作、复杂区域处理、椭圆、圆弧、多边形以及区域填充等函数。在提供有兼容于 C99 规范的数学库平台上，还提供有高级二维绘图函数，可设置线宽、线型以及填充模式等。通过 MiniGUI 的图形抽象层及图形引擎技术，也可以让上述高级 GDI 接口在低端显示屏上实现。
各种流行图像文件的支持，包括 Windows BMP、GIF、JPEG、PNG等(JPEG 及 PNG的支持通过 libjpeg 及 libpng 函数库提供)。
Windows 的资源文件支持，如位图、图标、光标等。
多字符集和多字体支持，目前支持 ISO8859-1～ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8、UTF-16 编码)等字符集，支持等宽点阵字体、变宽点阵字体、Qt/Embedded 使用的嵌入式字体 QPF、TrueType矢量字体(对 TrueType 的支持通过 freetype 1.3 函数库提供)。
输入法支持，用于提供各种可能的输入形式；内建有适合 PC 平台的汉字(GB2312)输入法支持，包括内码、全拼、智能拼音、五笔及自然码等。
MiniGUI 的技术优势 和其它针对嵌入式产品的图形系统相比，MiniGUI 在对系统的需求上具有如下几大优势：
可伸缩性强。MiniGUI 丰富的功能和可配置特性，使得它既可运行于 CPU 主频只有 60MHz 的低端产品中，亦可运行于高端嵌入式设备中，并使用 MiniGUI 的高级控件风格及皮肤界面等技术，创建华丽的用户界面。MiniGUI 的跨操作系统特性，使得 MiniGUI 可运行在最简单的嵌入式操作系统之上，如 uC/OS-II，也可以运行在具有现代操作系统特性的嵌入式操作系统之上，如 Linux，而且 MiniGUI 为嵌入式 Linux 系统提供了完整的多窗口图形环境。这些特性，使得 MiniGUI 具有非常强的可伸缩性。可伸缩性是 MiniGUI 从设计之初就考虑且不断完善而来的。这个特性使得 MiniGUI 可应用于简单的行业终端，也可应用于复杂的消费类电子产品。
轻型、占用资源少。MiniGUI 是一个定位于轻量级的嵌入式图形库，对系统资源的需求完全考虑到了嵌入式设备的硬件情况，如 MiniGUI 库所占的空间最小可以裁剪到 500K 左右，对目前的嵌入式设备来说，满足这一条件是绰绰有余的。此外，测试结果表明，MiniGUI 能够在 CPU 主频为 30 MHz，仅有 4M RAM 的系统上正常运行(使用 uClinux 操作系统)，这是其它针对嵌入式产品的图形系统所无法达到的。
高性能、高可靠性。MiniGUI 良好的体系结构及优化的图形接口，可确保最快的图形绘制速度。在设计之初，就充分考虑到了实时嵌入式系统的特点，针对多窗口环境下的图形绘制开展了大量的研究及开发，优化了 MiniGUI 的图形绘制性能及资源占用。MiniGUI 在大量实际系统中的应用，尤其在工业控制系统的应用，证明 MiniGUI 具有非常好的性能。从 1999 年 MiniGUI 的第一个版本发布以来，就有许多产品和项目使用 MiniGUI，MiniGUI 也不断从这些产品或者项目当中获得发展动力和新的技术需求，逐渐提高了自身的可靠性和健壮性。有关 MiniGUI 的最新成功案例，您可以访问飞漫公司网站的典型案例部分：http://www.minigui.com/ （页面存档备份，存于）
可配置性。为满足嵌入式系统各种各样的需求，必须要求 GUI 系统是可配置的。和 Linux 内核类似，MiniGUI 也实现了大量的编译配置选项，通过这些选项可指定 MiniGUI 库中包括哪些功能而同时不包括哪些功能。大体说来，可以在如下几个方面对 MiniGUI 进行定制配置：
指定 MiniGUI 要运行的硬件平台。
指定 MiniGUI 要运行的操作系统。
指定生成基于线程的 MiniGUI-Threads 运行模式还是基于进程的 MiniGUI-Processes 运行模式，或者只是最简单的 MiniGUI-Standalone 运行模式。
指定需要支持的 GAL 引擎和 IAL 引擎，以及引擎相关选项。
指定需要支持的字体类型。
指定需要支持的字符集。
指定需要支持的图像文件格式。
指定需要支持的控件类。
指定控件和窗口的整体风格，可以通过指定不同的渲染器完成。这些配置选项大大增强了 MiniGUI 的灵活性，对用户来讲，可针对具体的应用需求量体裁衣，开发最适合产品需求的应用软件。
总之，将现代窗口和图形技术带入到嵌入式设备的MiniGUI，是一个非常适合于实时嵌入式设备的高效、可靠、可定制、小巧灵活的图形用户界面支持系统，其主要优点可以总结如下：
支持多种嵌入式操作系统，具备优秀的可移植性；
可伸缩的系统架构，易于扩展；
功能丰富，可灵活剪裁；
小体积高性能间的最佳平衡；
广泛的应用领域。
MiniGUI V3.0 在以前版本的基础上新增了如下新特性：
主窗口双缓冲区(Double Buffering Main Window) 当 MiniGUI 3.0 的主窗口具有双缓冲区时，可以在自定义缓冲区中获得整个主窗口的渲染结果。在此基础上，可以利用高级 2D 图形接口或者 3D 图形接口获得主窗口的各种特殊显示效果，如推拉切换、翻页切换、卷曲效果等等。
外观渲染器(Look and Feel Renderer)支持。MiniGUI V3.0 改变了以往只支持三种控件风格的方式，引入了渲染器(Look and Feel)这一全新的模式。渲染器是定义如何绘制窗口元素的渲染器，是在MiniGUI V2.0.X的基础上继续完善的。窗口元素包括边框、标题栏、标题栏按钮、滚动条、选定项目、无效项目、高亮项目、突出项目、三维对象等；窗口元素的外观属性，包括窗口元素的颜色、尺寸、字体等信息；窗口元素渲染器是对窗口元素进行定制大小、颜色、图形、字体，便于用户设计个性化的外观显示风格。用户可以指定某个主窗口或某个控件使用特定的渲染器，也可定制非客户区渲染器、窗口元素的尺寸、颜色、字体、图标，同时增强资源管理功能，从而获得更加华丽的图形界面。MiniGUI实现了几种默认整体显示风格：Classic 、Flat、Fashion 和Skin。用户可以在配置 MiniGUI 时指定相应的选项来将 MiniGUI 编译成特定的一种显示风格。
Classic: 这种风格的界面是标准的Window 95风格界面，也是最广泛使用的风格了。
Fashion: 此种风格的界面，采用 MiniGUI 3.0 组件 mGPlus 提供的颜色渐变填充技术，因此，可获得非常炫丽的界面效果；
Flat: 此种风格的窗口界面，线条清晰，简洁，因此适用于单色或者灰度显示屏。因为绘制简单，因此该渲染器占用资源最少，运行速度最快；
Skin: 上面三种外观渲染器基本上都是由代码绘制出来的，具有小巧灵活的特点。但是，在嵌入式应用领域，设备的差别非常大。有些设备，已经具备了非常高的运算性能。在这种情况下，可以考虑使用皮肤外观渲染器来美化界面。皮肤外观渲染器需要一整套和界面相关的图片，因此需要占用一些存储资源。皮肤外观渲染器的最大的特点是允许用户定制界面，用户可以使用自己设计的图片替换系统原有的图片，展现在用户面前的就将是你自己设计的界面效果。
双向文本(BIDI Text)的显示与输入。大家知道，除了大家熟知的从左向右书写的文字(如英语、汉语等)之外，还有许多语言采用从右向左的书写习惯，如阿拉伯文和希伯来文等。为了支持这些语言，MiniGUI 3.0中增加了对这两种语言所属字符集的处理，并增加了阿拉伯和希伯来键盘布局的支持，从而实现了对双向文本的输入输出处理。阿拉伯文以及希伯来文的显示。
不规则窗口。MiniGUI V3.0实现了不规则窗口与控件，可满足用户对窗口外观各种不同的需求。不规则窗口通过一个Region数据结构来表示可见区域，或者通过8位MYBITMAP中的透明值形成不可见区域。
字体。在 MiniGUI 3.0 中，飞漫软件发明了一种新的 UNICODE 字体文件格式，称为“UPF”字体。这种字体的最大特点，是便于在多进程环境下使用，从而极大地节约了内存的使用。同时，飞漫软件增强了VBF字体格式，将VBF 字体升级到了3.0，扩大了其能适用的字符集范围，以便支持阿拉伯文等语言文字的显示。
其他增强。MiniGUI 3.0实现了桌面的可定制。通过桌面的外部编程接口，用户可以在桌面放置图标并响应桌面事件，实现类似Windows桌面的界面效果。除此之外，MiniGUI 3.0 还增强了透明控件的实现，使之效率更高，且不依赖于控件的内部实现代码。MiniGUI 3.0 还提供独立的滚动条控件，提供统一的虚拟帧缓冲区程序支持等等。 另外最新的MiniGUI V3.0新增加了两个新的组件：mGUtils和mGPlus，把字体、位图、图标、光标等资源进行统一管理，资源的内嵌和非内嵌方式并不影响模块的组成，由此抽象出系统资源管理模块。