[转]directdraw编程方法与技巧

上传人:子 文档编号:46802531 上传时间:2018-06-28 格式:PDF 页数:5 大小:324.74KB
返回 下载 相关 举报
[转]directdraw编程方法与技巧_第1页
第1页 / 共5页
[转]directdraw编程方法与技巧_第2页
第2页 / 共5页
[转]directdraw编程方法与技巧_第3页
第3页 / 共5页
[转]directdraw编程方法与技巧_第4页
第4页 / 共5页
[转]directdraw编程方法与技巧_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《[转]directdraw编程方法与技巧》由会员分享,可在线阅读,更多相关《[转]directdraw编程方法与技巧(5页珍藏版)》请在金锄头文库上搜索。

1、第卷第期 年月指挥技术 学院学报 压编程方法与技巧张可黛曾峦李智装备指挥技术学院测控制系摘要介绍了使用编写应 用程序 的方法和技巧,能在环境下对硬件 直接编程,在提 高显示分辨率的同时仍然能保持较高 的显示速度。关镇词编程图像显示分类号概述是为软件开发 人员提供的一套精心设计的接口,用于开发高性能、实时的应用程序。它以为基本结构,位于硬件和软件之 间,像一样提供 了硬件无关的接口它和有一重要不 同点是一套底层的接口,它提供了直接访问硬件的能力,使得应用程序能充分发挥硬件的威力。是中提供直接操纵显存、执行硬件映射、硬件覆盖及切换显示页等功能的组件。它不但兼容已有的应用程序和驱动程序,而且还兼容许

2、多显示卡 从简单的到支持图像剪裁、拉伸和非格式图像的高档显示卡。盯一抽象了显示卡的硬件功能,以设备无关的方式提供了一些以前是设备相关的功能,如多显示 页技术、访 问并控制显示卡映射寄存器、支持一、支持一硬件覆盖、访间图像拉伸硬 件,以及 同时访问标准显存和控制显存。正因为有这些优点,现 在许 多基于的游戏程序都使用 了而它的设备无关性使开发者摆脱了繁重的显示卡接口工作,集 中精力实现程序的主要功 能。中的实现 了所需要的函数、对象及其接口。下面先介绍中主要的函数、对象和接口,然后再说 明的使用方法。中的函数、对象和接口简介包括一个代表显示卡的主对象,由函数创建,实现接口和。如果机器上装有多个显

3、示卡,可以为每个显示卡创建一个对象。也可以创建多个对象,它们各自独立并代表 同一物理对象。是为了和以前版本兼容而保留的接口,基于以上版本的程序应该使用。和接口所包含的方法定义基本相同,但收稿日期一一第一作者女年生硕士研究生北京指挥 技 术学院学报年具体实现不同。对象主要用于创建其它个对象、。对象由函数创建,代表显存中一块线性区域,实现接口和。是为了和以前版本兼容而保留的接口,基 于以上 版本的程序应该使用。二者的接口定义也基本相同。可以为一个对象创建多个对象,代表物理屏幕或逻辑屏幕,通 过、等方法切换显示页或映射部分屏幕内容。对象由函数创建,实现接口。它代表显示卡的物理调色板,可以是色或色。每

4、个必须附着在 一个上,不同的对象 可以有不同的。对象由函数或创建,实现接口。用它来处理屏幕的剪贴。它常用于在模式与全屏模式相对应 下运行的程序,在使用前也必须被 附着在一个上。程序一般工作过程和一般的程序一样,程序要先创建一个主窗口,然后进行的初始化创建所需要的对象,设置程序的工作模式,建立必要的数据结构。在初始化工作完成后,就可以在主窗口的消息循环中根据用户的输入调用相应对象的方法。初始化创建对象首先调用创建代表某个显示卡的对象,翻,的第一项参数是代表显示卡驱动程序的,若为则表示采用系统默认的驱动程序。第二项参数是接口类型指针的地址,用于接收指 向由所创建对象的指针。这个指针不需应 用程序预

5、先分配 内存。成功时会调用将对象的引用计数加。如果要知道系统中所有驱动程序的,可以调 用,它接收两个参数回调函数的地址和传给回调函数的自定义数据的地址,其工作方式和类似。设呈的工作模 式创建对象后应该马上设置对象的工作模式,的第一个参数是和对象关联的窗口句柄,一般是程序主窗口的句柄第二个参数指明了对象的工作模式。对象有两种工作模式普通模式爪,参数和独占模式,参数。普通模式下和普通程序的区别不大,主要第期张可黛,等编程方法与技巧是程序可以随心所欲地读取整个屏幕的内容或在屏幕的任意位置输出,而其它的程序毫无察觉。独占模式就是游戏“红色警报”和“赤壁”所采用的方式,并必须和全屏模式参数联用,此时程序

6、的主窗口被扩展为整个屏幕。其它应用程序都成为后台程序,使用十键可以在程序间切换。得到类型的接口接下来利用的重要方法,通过接口得到一个类型的接口。成功时会将对象的引用计数加,而我们也不再需要接口,因此这里调用将对象的引用计数减,也即释放先前得到的接口。根据雷要切换屏幕显示模 式如果的工作模式设定为全屏独占模式,则可以根据需要切换屏幕显示模式一,的前两个参数是屏幕的横、纵分辨率,最后一个是每个像素点的颜色位数。上例将屏幕设 为,位色。创建对象并得到接口创建对象后,下一 步调 用创建代表物理 屏幕或逻辑屏幕 的。对象。的第一 个参数是结构的地址,第二 个参数是一个接口类型的指针地址,第三个参数必须是

7、。数据结构包含了创建所需信息。在得到一个类型接口后,仍使用得到一个类型的接口,并释放先前得到的接口,上面得到的指 向代表物理屏幕的对象。还需调用得到指向创建时附带的代表相关逻辑屏幕的对象指针。至此,初始化工作完成。使用使用函数向物 理屏 幕或逻辉屏 幕输出调用。可得代表某个屏幕的设备描述表的句柄,使用函数输出,最后调用释放句柄。为防止在对屏幕作图期 其它应用程序争夺显存,调 用得 到。这意味着其它程序在该程序释放前都不能访问和资源。调用释放。于是,在调用和期间,将被挂起。因此,应用程序应尽量缩短这一对函数调用之间的间隔时间,而且调试程序也无法跟踪这段时间内执行的操作。指 挥 技术学院学报年交替

8、切换物理屏幕和逻样屏幕或执行屏幕内容的映射准备好内存中的逻辑屏幕后,可以调用方法切换物理屏幕和逻辑屏幕,也可调用、等方法执行部分屏幕内容的映射。一般情况下程序采用异步方式,在显示卡硬件执行切换动作的同时准备下一页屏幕,使和显示卡硬件并行,提高整体执行速度。使用切换物理屏幕和逻辑屏幕后,原指向物理屏幕的指针仍然指向物理屏幕,原指向逻辑屏幕的指针仍然指向逻辑屏幕,即指针所指内容也被交换了,便于程序操纵各个屏幕而不至于混淆。释放对象程序结束之前要释放所创建的对象。这只要在相应接口上调用方法即可。使用的技巧和注意事项检变方法的返回值正确执行方法时都返回。且其值是零。返 回其它值表明发生了某种错误。一般

9、地,程序应检查这些返回值以决定是否出错。检查一泣和一的状态如果在或操作的返回值是情况,为提高效率,提 供了和方法。创门能立即返回当前的和状态,于是应用程序可以在上一操作完成之前执行某些其他的任务。在位图映射中使用是一种或几种颜色的集合,用于在位图映射操作中区分前景色和背景色。包括两种和。前者是指源位图中代表透明色的颜色,在执行映射操作时将不被映射到 目标位图上后者是指目标位图中将被源位图中相应位置颜色取代的颜色,如果目标位图指定了,则只有这些指定的颜色被替换。可以在创建对象时指定也可使用方法和以获取和设置已有的对象的。,定向由于在系统启动时先于被装入,而工作时又绕过了,因此不知道对物理屏幕所进

10、行的操作。即使调用了方法将先前的物理屏幕切换为逻辑屏幕,如不采取措施,将仍然向切换后的逻辑屏幕上输 出。如果程序拥有菜单、滚动条等 由负责绘制的元素,那么在完成后这些元素就会成为不可见,而在对应的逻辑屏幕被切换成物理屏幕时又会显示出来。为避免屏幕闪烁,提供了,用于确定当前被认为是物理屏幕的对象以及,用于将的输出重新定向到当前的物理屏幕上。如果需要,可以在每次操作后调用它,以保证屏幕正常。第期张可黛,等编程方法与技巧在显存中存放位图由于从显存到显存的映射比从 系统 内存到显存的映射快,所以经常将需要映射的位图存放在显存中以提高速度。大多数显示卡在存放了物理屏幕和相关逻辑屏幕之外还有足够 的内存

11、可以用来存 放 位图。可以调 用检查显存在 创 建对象时可以通过结构中的域指定该对象存在于显存或系统 内存中。如果指 定在显存中创建对象,而显存又没有地方容纳该对象,会返 回错误信息。如果没有指定创建的位置,总是尽量利 用空闲的显存。检查硬件的性能虽然通过和屏蔽了硬件的具体特性,但应 用程序也需根据硬件的不 同性能来改变 自身的执行方式。利用方法可以得到有关硬件性能的详细信息。保持主窗口的消息循环畅通在调用设置的工作模式时,应用程序为指定了主窗口。由于直接操纵硬件可能导致死机,因此在后台监视主窗口的消息循环,当消息循环长时间没有反应时,就释放所有的资源,结束应用程序的执行。所以程序应该注意避免长时间封锁消息循环。参考文献、从入门到精通北京电子工业 出版社,一,资任编辑傅鸿吉

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号