开源GUI-Microwindows简介

news/2025/2/11 8:48:28/

***************************************************************************************************************************
作者: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的架构!


http://www.ppmy.cn/news/576615.html

相关文章

jmeter源码---gui简单介绍

概述 二次开发JmeterGUI的源码需要有swing基础支持的支撑,不熟悉请自行学习,在此不做赘述 启动加载 src/core中org.apache.jmeter资源包,这是启动jmeter GUI的入口。 jmeter启动的入口类为NewDriver,启动核心为JMeter的start方…

redmine2.0 + mongrel

这是一件蛋疼菊紧的事,安装好redmine之后,webrick性能实在是不敢恭维,尤其是局域网访问速度。 更换mongrel,启动失败,原因是mongrel与ruby1.9.3不兼容。 解决方法是: 1. gem uninstall mongrel 2. gem …

ubuntu 版mysql客户端工具_软件推荐 MySQL GUI工具

问题 谁能推荐一下Ubuntu的原生MySQL GUI客户端? 到目前为止,我尝试了MySQL Workbench,但它从未正常工作; phpMyAdmin,我发现它有点慢; Navicat,这是一个Windows软件,在wine下运行。这些都不是完美的。 答案…

测试opencl软件,OpenCL应用测试

◆ OpenCL应用测试 GUIMiner挖矿测试 GUIMiner是一个免费的比特币挖矿软件,让你用电脑的CPU或显卡的GPU来挖取比特币,支持多个比特币服务器,支持多个矿工,测试使用OpenCL挖矿器,CPU和GPU一齐上同时挖矿。 虽然说用CPU来…

GUI

网络和多线程的文章中也有部分GUI的代码 基础知识 GUI(Graphics User Interface)图形用户界面Java不擅长图形编程AWT(Abstract Window Toolkit),因为要调用一些操作系统的东西,所以AWT没有完全支持的跨平台新的javax.swing*;实现了完全跨平台&#xff0c…

MySQL的GUI工具

安利一款 MySQL 的 GUI 工具-Navicat 没什么好说的,操作简单到爆。 安装也是简单粗暴(之前的mysql-gui-tool各种登陆不上,把我给气的)。 下载地址 http://download.csdn.net/download/su749520/10192264

GUI概述

GUI简介 GUI(Graphics User Interface),中文名称为图形用户界面,是指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。 早期,电脑向用户提…

GUI Python

目录 图形用户界面的构成 创建GUI程序 Frame 框架和GUI应用程序类 主窗口的位置和大小的调整 几何布局管理器 pack几何布局管理器 grid几何布局管理器 place几何布局管理 事件处理 事件绑定 事件处理函数 图形用户界面的构成 一个顶层窗口(也称根窗口、主窗…