开源GUI-Microwindows简介

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

作者: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的实例图片[摘自网络]

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

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

开源GUI-Microwindows简介

时间: 2025-01-02 18:30:10

开源GUI-Microwindows简介的相关文章

开源无线路由器知识简介

由于做项目的需要和自己的爱好,最近在找关于无线路由器的资料,找到了些相关的资料,在这里总结一下.一.无线路由器与无线AP的区别AP为Access Point简称,一般翻译为"访问节点",无线AP主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信.通俗的讲,无线AP是无线网和有线网之间沟通的桥梁.当前的无线AP可以分为两类:单纯型AP和扩展型AP. 单纯型AP的功能相对比较简单,缺少路由功能,只能当无线集线器.它相当

c++开源爬虫-Larbin简介

原文地址:http://leihuang.net/2014/06/16/Larbin-Introduction/ 因为最近学校实训,做的是一个搜索相关的项目,并且是c++的一个项目,所以就想到了larbin,于是接下来几天就现研究研究其源码,再根据项目需求修改其源码. 不多说,直接进入今天的正题.今天的目的就是简单了解下larbin. Larbin简介 larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人Sébastien Ailleret独立开发,用c++语言实现.larbin目的是能够

最大开源代码sourceforge 简介 及视音频方面常用的开源代码

所有的音视频凯源代码在这里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下载分析,视频不懂请发邮件给我,帮你分析. 0.视频项目 0.1  VLC media player VLC 多媒体播放器(最初为VideoLAN Client,是VideoLAN计划的开放源代码多媒体播放器.)支援众多音讯与视讯解码器及档案格式,并支援DVD影音光碟,VCD影音光碟及各类串流协定.它也能作为单播 或 多播的串流服务器在IPv4 或I

TOP 10开源的推荐系统简介

最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重量级的适用于工业系统的 Mahout.Oryx.EasyRecd等,供大家参考.PS:这里的top 10仅代表个人观点. #1.SVDFeature 主页:http://svdfeature.apexlab.org/wiki/Main_Page 语言:C++一个feature-based协同过滤和排序工具,由上海交大Apex实验室开发,代码质量较高.在

10款开源的推荐系统简介

最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重量级的适用于工业系统的 Mahout.Oryx.EasyRecd等,供大家参考.PS:这里的top 10仅代表个人观点. 1.SVDFeature 主页:http://svdfeature.apexlab.org/wiki/Main_Page 语言:C++ 一个feature-based协同过滤和排序工具,由上海交大Apex实验室开发,代码质量较高.在

TOP 10 开源的推荐系统简介

最 近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature.LibMF.LibFM等,也有重 量级的适用于工业系统的 Mahout.Oryx.EasyRecd等,供大家参考.PS:这里的top 10仅代表个人观点. #1.SVDFeature 主页:http://svdfeature.apexlab.org/wiki/Main_Page 语言:C++一个feature-based协同过滤和排序工具,由上海交大Apex实验室开发,代码质量较高

基于Instrumentation Framework的开源项目AndroidMonkey简介

在上一篇文章<MonkeyRunner和Android设备通讯方式源码分析>中本人提到MonkeyRunner跟目标安卓机器交互的其中一种方式是通过在目标机器端开启'monkey -port $port'来跟monkeyrunner建立连接进行交互的,后来打算下载安卓机器端的monkey源代码来分析下monkey是如何处理的,在google中打入关键字"android monkey source code"后定位到以下连接"https://code.google.

Google 的开源技术protobuf 简介与例子[转]

来源:http://blog.csdn.net/caisini_vc/article/details/5599468 今天来介绍一下"Protocol Buffers "(以下简称protobuf)这个玩意儿.本来俺在构思"生产者/消费者模式 "系列的下一个帖子:关于生产者和消费者之间的数据传输格式.由于里面扯到了protobuf,想想干脆单独开一个帖子算了. ★protobuf是啥玩意儿? 为了照顾从没听说过的同学,照例先来扫盲一把. 首先,protobuf是一个

Google 的开源技术protobuf 简介与例子

来介绍一下“Protocol Buffers ”(以下简称protobuf)这个玩意儿.本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式.由于里面扯到了protobuf,想想干脆单独开一个帖子算了. ★protobuf是啥玩意儿? 为了照顾从没听说过的同学,照例先来扫盲一把. 首先,protobuf是一个开源 项 目(官方站点在“这里 ”),而且是后台很硬的开源项目.网上现有的大部分(至少80%)开源项目,要么是某人单干.要么是几个闲杂人等合伙搞.而pr

基于Django 的 FreeSwitch 开源GUI 管理系统 YouPBX

YouPBX YouPBX 是一个强大 FreeSwift (电话软交换系统) 的管理GUI系统,基于Django开发,功能全面,体验友好,可以基于此项目做一个完善的IPPBX系统.呼叫中心应用等 项目地址 https://github.com/JoneXiong/YouPBX 使用 git clone cd YouPBX 项目界面框架用的 DjangoX, 请拷贝xadmin包到运行根目录 cp config_sample.py config.py 编辑配置freeswitch的连接信息 py