网站首页  |  论文  |  撰写  |  发表  |  汇款  |  期刊  | 定单  |  联系
 
·陈杰人:北京网络裸聊案的司法教
·吴官正抵达哈瓦那开始访问古巴
·杨涛:校园生死协议践踏法治精神
·熊光楷在日本发表演讲:永远不搞
·医生报告称吸烟者胃肿瘤发病率高
·王小峰:国安争第一?虚张声势还
·国亲两党联手成功阻止“排马条款
·中国巴基斯坦发表联合声明扩大教
·辽宁将取消户口限制统称居民户口
邮箱:
lw1006@126.com
电话: 13370581978
QQ: 453733560
·《 科学XX 》杂志

 省级教育 / 月刊

·《XX和XX医学杂志》

 省级医学类 / 月刊

·《 电影XX 》

 国家级核心 / 半月刊

·《 交通 ×× 》

 省级建筑类 / 月刊

首页>论文>自然>正文

可移植的256色图形用户界面的设计
摘 要 该文从软件可移植性的角度指出设计256色图形用户界面时应当注意的问题,在对SuperVGA产品进行分析的基础上,提出了基于表格驱动的程序设计思想,并给出了范例。
随着各种超级VGA的出现,同时具有高分辨率和丰富色彩的图形用户界面已经成为程序员和用户共同追求的目标。然而由于各制造商提供的VGA产品之间的差异,使得高分辨率256色图形界面的兼容性受到影响,常常会出现这样的情况:在一个显示系统下运行良好的程序,在另一种显示系统下变得面目全非,甚至根本不显示。这表明程序员对程序的可移植性重视不够,或对各种显示设备缺乏足够的了解。
软件的可移植性是指软件产品从一个硬件/软件环境转移到另一个硬件/软件环境的难易与繁简程度。它从软件对新环境的适应性这一方面,反映了软件的质量。为了提高软件的可移植性,应尽量使软件与具体的设备无关,即提高软件的设备独立性。对于256色图形界面而言,就是要使程序不依赖于某种特定的显示器。例如,程序员没有任何理由假定用户使用的是TVGA。为此,程序员必须提供显示卡的常规检测例程,并能根据检测的结果决定图形算法的具体实现。
提高软件设备独立性的方法有很多,表格驱动就是其中一种。所谓表格,就是根据需要设计的数据结构。表格中的数据由检测例程填写。表格中包含哪些栏目,应在对各制造商提供的SuperVGA产品足够了解的基础上取舍,栏目应体现各产品之间的差异。
一、SuperVGA编程综述
SuperVGA产品在体系结构上和标准的IBM VGA有所不同。但编程思想基本上是一样的,这些编程方法已有许多文章介绍,这里不再重复。
影响256色图形界面可移植性的主要障碍来自各制造商提供的VGA产品的下面几点差异。
1.显示模式的定义不同。如5DH对TVGA而言,代表640×480
×256色模式,对PVGA而言却代
表1024×768×16色模式。因此,直接用这种模式号初始化显示系统是不可取的。和显示模式密切相关的是水平分辨率和垂直分辨率。尽管各VGA的256色显示模式定义迥异,但大都支持如下几种流行的分辨率,现用统一的模式号定义见附表。
@@10A06500.GIF;附表@@
不同分辨率之间的区别,体现在编程上就是同一屏幕坐标映射到显存的地址不同,但映射机理却是一样的。具体地说,坐标(x,y)对应显存的偏移地址(相对于A000)为Addr=-vga-width*y+x
2.分页机制不同。SuperVGA使用256K、512K或1M
的显示存储器结构。为了使处理器可通过一个64K主窗口来存取这样大的显示存储器,SuperVGA有一个存储器分页机制,使得只将显示存储器的一部分映射到处理器的地址空间。值得注意的是,不同的VGA产品,其页的大小不同,页起始地址的粒度也是可变的。具体的页选择算法请查阅制造商提供的资料。
不同的显示模式,显示一屏图像所需的页数是不同的。
除了可移植性外,效率也是一个不可忽视的因素。图形系统的核心部分应使用汇编语言编程。这不仅是因为汇编语言的效率高,而且还因为汇编语言子程序的可再用性和可协用性也很好。核心部分应十分重视下面几点:(1)减少不必要的页边界检查次数;(2)只有在必要时才进行页选择;(3)选择高效的机器指令。现举例说明。程序1是图像显示系统中常用的函数,其功能是将解包后的图像数据送到显存。为便于阅读同时给出了C语言调用原型。程序在传送每一行数据时,提前预测是否会遇到页边界,如果没有,直接传送;如果有,则将数据分成两部分,分别传送,中间插入页选择。所有的传送均用字操作代替字节操作。页边界检查只有一次,分页操作只有在必要时才发生,图像的显示用最高效的指令REP MOVSW。
程度1:
;原型:void LineDump(int x,int y, int num, char far*ptr)
;参数:
; x,y-屏幕坐标
; num-本行的像素个数
; ptr-指向像素数据的远指针
LineDump proc far
push bp
mov bp,sp
sub sp,2;WORD Reserved for local var.
push ds
push es
push si
push di
reserved equ [bp-2];Local var.save seg(DGROUP)
x equ [bp+6];Large Model
y equ [bp+8]
num equ [bp+10]
offs equ [bp+12]

本新闻共3页,当前在第1页  1  2  3  

起点中文网  中国论文联盟  红袖添香  黄金书屋  新浪读书  舞文弄墨-天涯社区  网易文化频道  腾讯读书  网文报社  文学酷站  且听风吟
关于我们 | 联系热线 | 广告刊登 | 友情链接 | 网站地图 | 帮助HELP
Copyright 2001-2005 《论文中国》--轻松生活,一起创造!
(中国老牌知名“论文网”)
《论文中国》提供专业的“文稿写作”、“论文发表”服务!四年成功运营,品质值得信赖!
主要业务:论文代写,论文发表,商业策划,资料翻译,书稿出版,文书撰写等!
本站坚持:优质、诚信、高效、安全四大原则!需要“发表论文、代写论文”请与本站联系!