![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
为了避免图形函数重人时带来的问题,以及不同应用任务拥有不同屏幕以及相应属性的问题,在新的设计中采用了图形上下文(Graphic Context,简称GC)的结构。每个需要用到屏幕的应用任务都拥有自己的图形上下文,该结构中保存与硬件无关的显示属性,比如当前色、背景色、当前线宽、当前填充模式、光标的位置、闪烁频率、光标大小、显示缓冲区(VRAM)的头指针、物理屏幕在逻辑屏幕中的位置坐标等信息。
实际上,这样的设计一方面可以实现逻辑屏幕的概念,即应用程序可以在比实际物理屏幕大的屏幕上绘制图形;另一方面.不管应用任务在前台(拥有LCD)还是在后台(不拥有LCD),都可以进行图形函数的调用。如果是前台任务,绘制的图形会立刻显示在LCD上;如果是后台任务,图形被暂时“绘制”到该任务的VRAM中,等下次该后台任务切换到前台时,系统任务(System Task)将调用Refresh函数将该任务的VRAM刷新到LCD上。
结 语
根据以上内容,设计完成了ASIX Window GUI的原型系统,并在PDA应用中采用了该GUI。为了方便应用程序员的开发,还在此基础上设计了基于MS VC++的GUI模拟器。图4所示是ASIX Windcw在PDA系统和模拟器上的应用。
ASIX Window编译后的核心非常小巧,长度只有2OO KB左右。在可移植性方面,该GUI已成功地移植到了68000、X86、arm等处理器平台上。 |
|