资源描述:
《可移植的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而言却代表1024×768×16色模式。因此,直接用这种模式号初
4、始化显示系统是不可取的。和显示模式密切相关的是水平分辨率和垂直分辨率。尽管各VGA的256色显示模式定义迥异,但大都支持如下几种流行的分辨率,现用统一的模式号定义见附表。10A06500.GIF;附表不同分辨率之间的区别,体现在编程上就是同一屏幕坐标映射到显存的地址不同,但映射机理却是一样的。具体地说,坐标(x,y)对应显存的偏移地址(相对于A000)为Addr=-vga-p(intx,inty,intnum,charfar*ptr);参数:;x,y-屏幕坐标;num-本行的像素个数;ptr-指向像素数据的远指针LineDumpp
5、rocfarpushbpmovbp,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-ovah,dl;进位部分(DL)=页号calldovcx,num;本行要传送字节数movbx,cxaddb
6、x,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:popdipopsipopespopdsmovsp,bppopbpretLineDumpendp二、表格驱动的基本思想根据
7、上面的分析,用以驱动显示系统的表格,至少应当包含下列项目:(1)实际显示模式:vga-mode(2)水平分辨率:vga-TVGA-MODETVGA320x200=0,TVGA640x400=1,TVGA640x480=2,TVGA800x600=3,TVGA1024x768=4,;voidTVGA256-driver(void);voidPVGA256-driver(void);voidAVGA256-driver(void);...voidVESA256-driver(void);externintfar-CdeclTVGA25
8、6-driver-far[];externintfar-CdeclPVGA256-driver-far[];externintfar-CdeclAVGA256-driver-far[];...externintfar-CdeclVESA256-dr