MiniGUI从技术架构上包括几个模块:输入抽象层(IAL)、输出抽象层(GAL)、消息模块、窗口模块、图形设备接口模块(GDI)及MiniGUI组件。其架构图如下:
1. 图形抽象层和输入抽象层
在MiniGUI 3.0版本的开发中,引入了图形抽象层(Graphics Abstract Layer)和输入抽象层(Input Abstract Layer)的概念。抽象层的概念类似Linux内核虚拟文件系统的概念。它定义了一组不依赖任何特殊硬件的抽象接口,所有顶层的图形操作和输入处理都建立在抽象接口之上,而用于实现这一抽象接口的底层代码称为“图形引擎”或“输入引擎”,类似操作系统中的驱动程序。有了GAL和IAL,只需根据具体的硬件实现新的图形引擎和输入引擎,我们可以非常方便地将MiniGUI移植到其他平台上。
2. 图形设备接口(Graphics Device Interfaces, GDI)
图形设备接口基于图形抽象层,为窗口处理模块提供图形相关的接口,如绘制点线、填充矩形、输入文件等。在图形设备接口中还包含其他比较独立的子模块,如字体字符集支持,图像支持等结合相关算法生成字符或图像。
3. 消息处理模块(Messaging Module)
消息处理模块在IAL基础上,实现MiniGUI的消息处理机制,为上层提供了完备的消息管理接口,众所周知,几乎所有的GUI系统本质上都是事件驱动的,系统自身的运行及GUI应用的运行都依赖于消息处理模块。
4. 多窗口处理模块(Windowing Module)和控件(Control或Widget)