可移植的256色图形用户界面的设计

可移植的256色图形用户界面的设计

ID:9586605

大小:56.50 KB

页数:4页

时间:2018-05-03

可移植的256色图形用户界面的设计_第1页
可移植的256色图形用户界面的设计_第2页
可移植的256色图形用户界面的设计_第3页
可移植的256色图形用户界面的设计_第4页
资源描述:

《可移植的256色图形用户界面的设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、可移植的256色图形用户界面的设计  摘要该文从软件可移植性的角度指出设计256色图形用户界面时应当注意的问题,在对SuperVGA产品进行分析的基础上,提出了基于表格驱动的程序设计思想,并给出了范例。随着各种超级VGA的出现,同时具有高分辨率和丰富色彩的图形用户界面已经成为程序员和用户共同追求的目标。然而由于各制造商提供的VGA产品之间的差异,使得高分辨率256色图形界面的兼容性受到影响,常常会出现这样的情况:在一个显示系统下运行良好的程序,在另一种显示系统下变得面目全非,甚至根本不显示。这表明程序员对程序的

2、可移植性重视不够,或对各种显示设备缺乏足够的了解。软件的可移植性是指软件产品从一个硬件/软件环境转移到另一个硬件/软件环境的难易与繁简程度。它从软件对新环境的适应性这一方面,反映了软件的质量。为了提高软件的可移植性,应尽量使软件与具体的设备无关,即提高软件的设备独立性。对于256色图形界面而言,就是要使程序不依赖于某种特定的显示器。例如,程序员没有任何理由假定用户使用的是TVGA。为此,程序员必须提供显示卡的常规检测例程,并能根据检测的结果决定图形算法的具体实现。提高软件设备独立性的方法有很多,表格驱动就是其中

3、一种。所谓表格,就是根据需要设计的数据结构。表格中的数据由检测例程填写。表格中包含哪些栏目,应在对各制造商提供的SuperVGA产品足够了解的基础上取舍,栏目应体现各产品之间的差异。一、SuperVGA编程综述SuperVGA产品在体系结构上和标准的IBMVGA有所不同。但编程思想基本上是一样的,这些编程方法已有许多文章介绍,这里不再重复。影响256色图形界面可移植性的主要障碍来自各制造商提供的VGA产品的下面几点差异。1.显示模式的定义不同。如5DH对TVGA而言,代表640×480×256色模式,对PVGA

4、而言却代表1024×768×16色模式。因此,直接用这种模式号初始化显示系统是不可取的。和显示模式密切相关的是水平分辨率和垂直分辨率。尽管各VGA的256色显示模式定义迥异,但大都支持如下几种流行的分辨率,现用统一的模式号定义见附表。10A06500.GIF;附表不同分辨率之间的区别,体现在编程上就是同一屏幕坐标映射到显存的地址不同,但映射机理却是一样的。具体地说,坐标(x,y)对应显存的偏移地址(相对于A000)为Addr=-vga-p(intx,inty,intnum,charfar*ptr);参数:;x,

5、y-屏幕坐标;num-本行的像素个数;ptr-指向像素数据的远指针LineDumpprocfarpushbpmovbp,spsubsp,2;odelyequ[bp+8]numequ[bp+10]offsequ[bp+12]psegequ[bp+14]movreserved,dsmovds,psegmovsi,offs;DS:SI图像数据所在源地址movax,0a000h;显存段址moves,ax;ES:DI显存目的地址movax,ypushdsmovds,reservedmulovdi,ax;DI=-vga-o

6、vah,dl;进位部分(DL)=页号calldovcx,num;本行要传送字节数movbx,cxaddbx,di;检测传送是否在一个页内jncDump-In-One-Pagesubcx,bx;CX=本页字节数,BX=下页字节数shrcx,1;CX/2=字数repmovsovsb;处理可能的奇数字节数incah;调整页号calldovcx,bx;新页内要写的字节数jcxzDump-DoneDump-In-One-Page:shrcx,1;CX/2=字数repmovsovsb;处理可能的奇数字节数Dump-Done

7、:popdipopsipopespopdsmovsp,bppopbpretLineDumpendp二、表格驱动的基本思想根据上面的分析,用以驱动显示系统的表格,至少应当包含下列项目:(1)实际显示模式:vga-mode(2)水平分辨率:vga-TVGA-MODETVGA320x200=0,TVGA640x400=1,TVGA640x480=2,TVGA800x600=3,TVGA1024x768=4,;voidTVGA256-driver(void);voidPVGA256-driver(void);voidA

8、VGA256-driver(void);...voidVESA256-driver(void);externintfar-CdeclTVGA256-driver-far[];externintfar-CdeclPVGA256-driver-far[];externintfar-CdeclAVGA256-driver-far[];...externintfar-CdeclVESA256-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。