首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
MicroWindows体系结构及应用程序接口 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:59:47 点击数:[] ![]() |
|||||
Window中的Xlib API,命名都是GrXXX()而不是X Windows中的X)。Nano-x API加入了基于网络的客户机/服务器功能,但是没有实现窗口管理,所以对窗口的处理需要使用系统提供的一个插件(widget)集,或者完全由应用程序员自已开发。 2 图形引擎特性与实现 图形引擎层的功能是完成图形在实虚屏之间的转换,以Gd...为开头,并将指针传给PSD作为它的首个参数。PSD参数将指定底层的显示模式,例如设备的垂直和水平尺寸、硬件使用的颜色模式。另外,真正执行画图的程序在这一层中作为功能指针使用。所有屏幕坐标都是COORD类型。 颜色在图形引擎中被指定RGB CILORVAL模式,然后被转换成颜色指针,以PIXELVAL模式传给显示硬件,在32bpp(bit per pixel)真彩显示器环境下不必转换。 (1)区域 区域用来描述屏幕上像素点的分布。在MicroWindows中,区域是用一些无交迭的矩形组成的数组来描述的。目前实现区域有两种方法,最初是用一个静态数组CLIPRECTs来描述复杂区域。在这个数组中任一矩形中的点都被认为是存在这个区域中的,另一个全局变量clipcount用来给这个数组中的矩形计数。这个方法没有给区域管理提供入口点,所以整个数组的数据直接被送到负责裁剪功能的函数数口。新方法则可以创建任何数目的区域。用来描述区域的数组CLIPREGION被定义成动态数据组,可动态分配它所包含矩形的数量,这样那些无交迭的矩形被存放在“y-x”类型的队列中。在同一队列中,所有矩形的垂直高度y是一样的,这意味着在每个队列中只有矩形的宽度可变。实际程序是利用Intersection、Union、Subtraction、Exclusive OR等方法来实现创建、删除一个区域或者是将几个区域或矩形合并。以下是这种方法设计的几个函数。 GdAllocRegion 创建一个区域 GdDestroyRegion 删除一个区域 GdCopyRegion 复制区域 GdUnionRectWithRegion 将一个矩形和一个区域合并 GdIntersectRegion 在两个区域的交集处创建一个新区域 GdSubtractRegion 在两个区域的差集处创建一个新区域 GdUnionRegion 在两个区域的并集创建一个新区域 GdXorRegion (2)裁剪 图形引擎中有一个由图形操作定义的由一些矩形组成的裁剪区,如果点被包含在这些裁减区内就会被绘制出来。有两个裁剪算法:devclipl.c针对静态矩形数组,devclipc2.c针对新的动态数组。GdSetClipRects是唯一删除区域并指定后来的图形操作的入口点。所有的绘图程序都要调用两个附加程序来决定是否画图。GdClipPoint获取屏幕坐标的(x,y)点,如果该点被绘制出来的话,则返回TRUE。GdClipArea获取屏幕上方最左的或者下方最右的点并回以下值:CLIP_VISIBLE(指定区域在原区域内)、CLIP_INVISIBLE(指定区域不在原区域内)、CLIP_PARTIAL(指定区域部分在原区域内)。 (3)画线 MicroWindows使用GdPoint画点,GdLine画线。画线时使用当前的前景色(DgSetForeground指定)。有两种绘制模式:MODE_SET和MODE_COR。 (4)矩形、圆和椭圆以及多边形 矩形、圆和椭圆的绘制分别调用GdRect和GdEllipse来实现。MicroWindows中定义了一个包含(x,y)多边形顶点的数组来表示多边形,调用GdLine函数画线,把这些点相连就可以实现画多边形。绘制时使用前景色。 (5)区域填充 MicroWindows中使用GdFillRect函数填充矩形区域,填充使用前景色。填充圆和椭圆使用GdFillEillpse函数,填充多边形使用GdFillPoly函数。填充的实现是在屏幕驱动中不断地调用GrawHorzLine函数。 (6)字体和文本输出 MicroWindows支持可变/不可变字体。文本输出时使用GdSetFont定义输出使用的字体,再调用GdText函数输出。 (7)颜色模式和调色板 MicroWindows支持RGB颜色,颜色匹配,真彩和调色板显示,3D效果的显示。 (8)图片绘制 MicroWindows支持两种格式的图片。单色图片用IMAGEBITS结构(1表示前景色,0表示背景色)来定义,绘制时调用GdBitmap程序。彩色图片可以分别定义为1、4、8 bpp的模式,用IMAGEHDR结构来表示。绘制时调用GdDrawImage函数。 (9)映射 映射功能在实虚屏的转换中使用。GdBlit可以实现上层的API将虚拟内存存复制到显示屏上,复制时调用GdBlit函数。 3 MicroWindows API MicroWindows API中的基本通信机制是消息机制。一个消息机制中包含了message number和两个参数:wParam、lParam。Message被存放在应用程序的message-queue中,GetMessage函数将其取出。WM_GHAR针对键盘输入,WM_LBUTTONDOWN针对鼠标键被按下。窗口创建时使用WMCREATE,删除时使用WM_DESTROY。DispatchMessage将消息传到处理程序的窗口。 以下是处理消息的有关函数: SendMessage 将消息传到窗口 PostMessage 将消息传到消息队列 PostQuitMessage 传递WM_QUIT消息到消息队列读时中断程序 GetMessage 得到消息后结束中断 TranslateMessage 将按键按下/弹起的消息传到WMCAR DispatchMessage 将消息传到为它分配的窗口程序 3.2 窗口的创建和删除 RegisterClass 定义新的窗口类型并启动窗口程序 UnRegisterClass 删除窗口类型 CreateWindowsEx 按窗口类型创建一个窗口 Deatr Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |