DXUT编程
最近在学习DX9,学习到DXUT编程,这里记录下DXUT的基本创建,以及实现一个简单的demo
首先
创建一个新工程,然后用VS2010打开这个工程,F5运行可以得到下面的一个基本界面:
空工程已经帮我们实现了windows窗口创建,D3D的基本初始化工程,接下来我们只要在DXUT自带框架
的回调函数中添加代码就行了,DXUT能够满足基本的demo演示,还有一些小游戏的GUI,但是个人觉得
DXUT很晦涩。
接下来,在这个窗口中实现添加文本的功能,这里主要通过在CDXUTTextHelper类、ID3DXFont跟ID3-
DXSprite接口来实现。在OncreateDevice函数中创建ID3DXFont字体对象,这个函数里面主要创建内存
管理资源,像顶点初始化工作也主要在这里做。
在OnResetDevice函数中穿件文本精灵对象,这个函数主要用于创建默认类型内存资源对象,像对话框的
尺寸位置、取景变换,投影变换,还有纹理和渲染的初试状态都可以在这里设置。
然后编写一个文本渲染函数RenderText,主要是创建一个CDXUTTextHelper类,然后调用类的Begin()
开始渲染文本,用end()结束渲染,感觉windows都是使用这样的方式,用SetInsertionPos设置文本插
入的位置,用SetForegroundColor设置颜色,DrawTextLine显示文本,然后在OnFrameRender显示。
运行结果如下:

接下来在窗口中添加控件,主要是在对话框中添加按钮。定义一个标准的DXUT对话框、专门用于D3D
渲染设备设置的对话框,当然还的定义一个对话框资源管理器类用于统一管理各个对话框,三个类CDXUT-
Dialog、CDXUTSettingDlg和CDXUTDialogResourceManager分别定义于不同的头文件,需要把这些
头文件添加进来。
然后定义InitApp函数,初始化对话框,为DXUTDialog设置消息处理函数,添加按钮控件,还需要定义
一个框架自带的对话框控件回调函数OnGUIEvent,这个函数主要对对话框上的按钮作响应。还需要在Ms-
gPro作处理,需要把资源管理器、对话框的MsgPro出给框架的MsgPro。运行的结果如上图。
ps,当你掌握了框架的整个原理,程序开发的效率还是可以提高很多。DXUT编程要多看DXUT自带的头
文件,出现

这样的错误主要是没添加头文件,可以去查下DXUT-Optional里面的头文件有定义这个,还有记得在链接库中添加d3dx10d.lib等连接库,
C/C++附加包含目录记得添加DXUT/Core跟DXUT/Optional,再有问题就谷歌吧。。。。。

浙公网安备 33010602011771号