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,再有问题就谷歌吧。。。。。

 

 

posted @ 2014-04-17 15:58  假装很菜  阅读(1183)  评论(0)    收藏  举报