码迷,mamicode.com
首页 > Windows程序 > 详细

开源GUI-Microwindows简介

时间:2014-06-08 04:42:29      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:c   style   blog   a   http   ext   

***************************************************************************************************************************
作者:EasyWave                                               时间:2014.06.07

类别:开源GUI系统-Microwindows简介     声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

 

一:Microwindows简介

       Microwindows 是一个著名的开放式源码嵌入式GUI 软件,目的是把图形视窗环境引入到运行Linux 的小型设备和平台上。作为X Window 的替代品,Microwindows可以使用更少的RAM 和文件存储空间(100K-600K)提供与X Window 相似的功能。Microwindows 允许设计者轻松加入各种显示设备、鼠标、触摸屏和键盘等。Microwindows 的可移植性非常好,基本上用 C 语言实现,只有某些关键代码使用了汇编以提高速度。Microwindows 支持ARM 芯片。尽管Microwindows 完全支持Linux,但是它内部的可移植结构是基于一个相对简单的屏幕设备接口,可在许多不同的RTOS 和裸机上运行。

       Microwindows 的图形引擎能够运行在任何支持readpixel, writepixel,drawhorzline, drawvertline 和setpalette 的系统之上。在底层函数的支持之下,上层实现了位图,字体,光标以及颜色的支持。系统使用了优化的绘制函数,这样当用户在移动窗口时可以提供更好的响应。内存图形绘制和移动的实现使得屏幕画图显得很平滑,这点特别在显示动画、多边形绘制、任意区域填充、剪切时有用。Microwindows 支持新的Linux 内核帧缓存(FrameBuffer)结构,目前提供每像素1、2、4、8、16、24 和32 位的支持,另外还支持彩色显示和灰度显示,其中彩色显示包括真彩色(每像素15、16 和32 位)和调色板(每像素1, 2, 4 和 8 位)两种模式。在彩色显示模式下,所有的颜色用RGB 格式给出,系统再将它转换成与之最相似的可显示颜色,而在单色模式下中则是转换成不同的灰度级。Microwindows支持窗口覆盖和子窗口概念、完全的窗口和客户区剪切、比例和固定字体,还提供了字体和位图文件处理工具。Microwindows 采用分层设计方法。在最底层,屏幕,鼠标/触摸屏以及键盘驱动程序提供了对物理设备访问的能力。在中间层,实现了一个可移植的图形引擎,支持行绘制,区域填充,剪切以及颜色模型等。在上层,实现多种API 以适应不同的应用环境。

 

二:Microwindows案例

     由于Microwindows采用了message的方式驱动UI的显示,跟miniGUI和WIN32的早期的GUI的消息机制是一样的,因此,只要掌握了Microwindows,就基本上掌握了MiniGUI。下面是一个实际的GUI的实例图片[摘自网络]

bubuko.com,布布扣

     本版块只打算分析开源的microwindows的架构,以及如何移植和应用的问题,并不打算分析国内开源的miniGUI。其原因是MINIGUI商业化是需要钱的,如下所示:

bubuko.com,布布扣

   因此,并不打算深入分析miniGUI,只分析microwindows的架构!

开源GUI-Microwindows简介,布布扣,bubuko.com

开源GUI-Microwindows简介

标签:c   style   blog   a   http   ext   

原文地址:http://blog.csdn.net/wavemcu/article/details/29194381

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!