游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
如何调试全屏模式的DirectX程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

只要调试过Full Screen模式DirectX程序的人都会对它心存恐惧,因为一旦运行到你预先设置的断点或是碰到
异常错误,在大多数情况下,都会让你的电脑死得很难看,除了重启,你没有别的办法。
  Imagic也是Full Screen模式的长期受害者,反复的重启让我的电脑也深受其害,以至于一碰到Full Screen模
式的程序都会先弹一个对话框“Are you sure?”(just a joke)。后来,Imagic终于摸索出一个土方法来解决这
个问题,效果很好, 终于可以使我坦然面对Full Screen程序。不敢独享,特放上来供大家参考。

  原理:将Full Screen模式程序改成Window模式
  方法:修改程序中的几个重要地方, 如:SetCooperativeLevel,SetDisplayMode,CreateSurface,Flip等
,使程序能够以窗口模式运行。一个很好的方法是用一个预编译的宏定义(如: FULLSCREEN_DEBUG)来控制编译
器,使程序能够很方便的在全屏模式与窗口模式下切换,下为一例:

  #ifdef FULLSCREEN_DEBUG
       lpDD->SetCooperativeLevel( hwnd, DDSCL_NORMAL);
  #else
       lpDD->SetCooperativeLevel( hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
       lpDD->SetDisplayMode( 640, 480, 16);
  #endif

  
一切完成并且确定没有错误之后,那么,在需要调试的时候,只需要:
  1、#define FULLSCREEN_DEBUG
  2、将显示器的分辨率设置成程序运行所需要的环境
  你就可以在窗口模式下很方便的调试你的DirectX Full Screen模式程序了(但是,这个方法只是针对DDraw程
序,对于D3D程序没有测试过)。


相关文章

相关软件