版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 8 章 图形用户接口MiniGUI,主要内容,1,4,2,6,MiniGUI简介,MiniGUI在Linux下运行环境的建立,Linux下S3C2410 FrameBuffer的启动,MiniGUI输入引擎IAL的开发,7,在S3C2410上运行简单的绘图程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真应用,8.1.1 MiniGUI的功能特色,MiniGUI是一种在嵌入式系统中提供图形及图形用户界面支持的中间件技术,是面向嵌入式系统的轻量级图形用户界面支持系统,国内著名的自由软件项目之一。,功能特性,完备的多窗口机制和消息传递机制。 常用的控件类,包括静态文本框、
2、按钮、单行和多行编辑框、列表框、组合框、进度条、属性页、工具栏、拖动条、树型控件、月历控件等。 支持对话框和消息框以及其它GUI元素,包括菜单、加速键、插入符、定时器等。 通过两种不同的内部软件结构支持低端显示设备(比如单色 LCD)和高端显示设备(比如彩色显示器)。前者小巧灵活,而后者在前者的基础上提供了更加强大的图形功能。 支持Windows的资源文件,如位图、图标、光标等。 支持各种流行的图像文件,包括JPEG、GIF、PNG、TGA、BMP等等。 支持多字符集和多字体。 针对嵌入式系统,支持一般性的I/O操作和文件操作等。,8.1.2 MiniGUI 的技术优势,和其它针对嵌入式产品的
3、图形系统相比,MiniGUI具有如下几大技术优势: 1占用资源少 2高性能、高可靠性 3可定制配置 4跨操作系统支持,主要内容,1,4,2,6,MiniGUI简介,MiniGUI在Linux下运行环境的建立,Linux下S3C2410 FrameBuffer的启动,MiniGUI输入引擎IAL的开发,7,在S3C2410上运行简单的绘图程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真应用,8.2.1 MiniGUI在Linux下的运行环境,在运行Linux的PC机上,MiniGUI应用程序可以通过以下两种方式运行:,在X Window上,在虚拟FrameBuffer的Q
4、VFB中运行; 在Linux的字符控制台上,在Linux内核提供的FrameBuffer驱动上运行。,QVFB,FrameBuffer设备驱动,QVFB是Qt(Qt是Linux 窗口管理器KDE使用的底层函数库)提供的一个虚拟的FrameBuffer工具。在X Window环境下,进行基于QVFB之上的MiniGUI模拟开发、调试是常用的开发调试手段。,对于大部分兼容VESA标准显卡的PC机,使用RedHat内核中包含的VESA FrameBuffer驱动程序就可以运行MINIGUI了。如果自己编译内核,则需要选中FrameBuffer的支持。,8.2.2 安装资源文件,在Linux环境下,把
5、该文件复制到/opt/emulation目录下(emulation目录为创建的目录)。执行如下解压缩命令: rootlocalhost emulation# tar zxvf minigui-res-1.3.3.tar.gz 该命令将建立minigui-res-1.3.3目录,然后进入该目录: rootlocalhost emulation# cd minigui-res-1.3.3 最后,通过make install命令安装资源文件: rootlocalhost minigui-res-1.3.3# make install 这样,资源文件就安装到/usr/local/lib/minigui
6、/res目录。,8.2.3 配置安装MiniGUI库文件,MiniGUI是以库的形式提供给用户的,通过将MiniGUI的库文件编译进应用程序来使用MiniGUI。步骤如下:,1、下载压缩的库文件libminigui-1.3.3.tar.gz 2、解压缩 tar zxvf libminigui-1.3.3.tar.gz 3、配置图形界面 make menuconfig 4、安装库文件 make make install,主要内容,1,4,2,6,MiniGUI简介,MiniGUI在Linux下运行环境的建立,Linux下S3C2410 FrameBuffer的启动,MiniGUI输入引擎IAL的
7、开发,7,在S3C2410上运行简单的绘图程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真应用,在QVFB上运行示例程序的步骤,mg-samples-1.3.1目录下包含了MiniGUI提供的多个示例程序,通过在mg-samples-1.3.1目录下依次执行./configure命令和make命令,可以将这些示例程序编译生成可执行程序。,1按照如下配置,修改/usr/local/etc目录下的配置文件MiniGUI.cfg。 system gal_engine = fbcon改为gal_engine = qvfb ial_engine = console改为ial_en
8、gine = qvfb qvfb defaultmode = 320 x240-8bpp 2使用qvfb if ( kbd_fd update_mouse = mouse_update; input-get_mouse_xy = mouse_getxy; input-set_mouse_xy = NULL; input-get_mouse_button = mouse_getbutton; input-set_mouse_range = NULL; input-update_keyboard = keyboard_update; input-get_keyboard_state = keybo
9、ard_getstate; input-set_leds = NULL; input-wait_event = wait_event; mousex = 0; mousey = 0; return TRUE; ,主要内容,1,4,2,6,MiniGUI简介,MiniGUI在Linux下运行环境的建立,Linux下S3C2410 FrameBuffer的启动,MiniGUI输入引擎IAL的开发,7,在S3C2410上运行简单的绘图程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真应用,8.7.1 MiniGUI的基本绘图函数,void GUIAPI SetPixel(HDC
10、 hdc, int x, int y, gal_pixel c); /设定像素值 void GUIAPI SetPixelRGB(HDC hdc, int x, int y, int r, int g, int b); /设定像素RGB值 gal_pixel GUIAPI GetPixel(HDC hdc, int x, int y); /得到像素的坐标 void GUIAPI GetPixelRGB(HDC hdc,int x,int y,int* r, int* g, int* b); /得到像素的RGB值 void GUIAPI LineTo(HDC hdc, int x, int y)
11、; /画线到该点 void GUIAPI MoveTo(HDC hdc, int x, int y); /设起点 void GUIAPI Circle(HDC hdc, int x, int y, int r); /画圆 void GUIAPI Rectangle(HDC hdc, int x0, int y0, int x1, int y1); /画矩形区域 void GUIAPI FillBox(HDC hdc, int x0, int y0, int x1, int y1); /填充矩形区域,8.7.2 绘图程序举例,static void DrawDemo (HWND hwnd, HD
12、C hdc) int x = DEFAULT_X, y= DEFAULT_Y; int tox = DEFAULT_WIDTH, toy = DEFAULT_WIDTH; int count; unsigned int nr_colors = GetGDCapability (hdc, GDCAP_COLORNUM); /设置画笔为绿色,并画一条绿色对角线 SetPenColor (hdc, PIXEL_green); MoveTo (hdc, 0, 0); LineTo (hdc, 320, 240); /设置画笔为绿色,画一圆,坐标为(150,140),半径为50 SetPenColor (hdc, PIXEL_green); Circle(hdc, 150, 140, 50); /设置画笔为青色,画矩形,中心坐标为(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流服务师岗前管理综合考核试卷含答案
- 司磅工常识考核试卷含答案
- 内燃机车钳工达标测试考核试卷含答案
- 膨胀烟丝设备操作工安全技能测试竞赛考核试卷含答案
- 土方机械维修工岗前岗位水平考核试卷含答案
- 2026年家政服务外包协议(企业)
- 2026八年级道德与法治上册 责任担当优化
- 护理急救试题及答案
- 无人机作业风险防控体系搭建方案
- 画室使用免责协议书
- 2026安徽合肥市产业投资控股(集团)有限公司第二批校园招聘19人笔试备考题库及答案解析
- 2026年北京市海淀区初三一模英语试卷(含答案)
- (三诊)2026年4月德阳市高三年级适应性练习地理试卷(含答案)
- 广东省阳江市阳东区2024-2025学年七年级下学期期中地理试卷(含答案)
- 2025年消防文员笔试试题(100题及答案)
- 2026年初中英语阅读技巧
- 江西省人才发展集团有限公司2026年春季集中招聘专题【11人】建设笔试备考试题及答案解析
- 2026江苏镇江丹阳市自然资源和规划局招聘编外工作人员2人建设笔试备考试题及答案解析
- (已压缩)广东省工程勘察设计服务成本取费导则(2024版)
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- WeDo2.0机器人编程等级测评考试题库(1级卷)(含答案)
评论
0/150
提交评论