DXUT11框架浅析

DXUT11框架浅析(0)—预览

 

 

1. DXUT11简介


          DXUT (DirectXUtility Library) 是微软提供的DirectX Sample中大部分例子使用的框架,支持Direct3D9和Direct3D10。可能由于Vista系统的短命以至新的框架DXUT11只支持Direct3D9和Direct3D11。不过两个框架比较相似。

         DXUT11框架稳定性好,而且里面对使用Direct3D各个接口API的使用也具有很高的参考价值。AMD、NVIDIA等很多显卡厂商都用这个框架演示自己的显卡性能。所以学习DXUT11的源码对Direct3D API的学习还是有很大帮助的。

 

 

 

2. 目录结构分析
 

       到微软官网下载 DirectX Software Development Kit ,下载地址:

http://www.microsoft.com/en-us/download/details.aspx?id=6812

得到DXSDK_Jun10.exe(最新的DXSDK已经被合并到Windows SDK forWindows 8 中)后安装。安装后到SDK目录下 */Microsoft DirectXSDK (June 2010)/Samples/C++/DXUT11,可见DXUT11源码分成Core和Optional两个部分。

 

 

2.1 Core 核心部分
DXUT.h 是最基本的程序框架,包括创建窗口,创建D3D设备,以及操控窗口和D3D设备的各种事件

DXUTDevice9.h 枚举D3D9的显卡设备性能。

DXUTDevice11.h 枚举D3D11的显卡设备性能。

DXUTmisc.h 提供一个类似std::vector的数据结构,和时钟类,以及截屏等函数

 

 

2.2 Optional 可选部分
 

DXUTcamera.h实现了摄像机控制,包括第一人称视角和模型查看视角(ArcBall算法)

DXUTgui.h DXUTguiIME.hImeUi.h DXUTres.h DXUTsettingsdlg.h实现了基本的GUI系统

SDKmesh.h 实现了一个创建渲染Mesh网格的类,以及一个读取.sdkmesh文件并渲染的类

SDKmisc.h 主要实现一个D3D资源(Texture/Font/Effect)缓冲,一个线管理器,以及一些辅助函数

SDKsound.h 对DirectSound封装成声音管理器

SDKwavefile.h 实现一个读写.wav文件的类

 

 

 

3. DirectX Sample 之 EmptyProject11


       看一个使用DXUT11最基础的例子。在DirectX Sample Browser中Install Project这个实例。这个实例介绍了DXUT11框架的基本使用。进入wWinMain函数。

 

3.1 首先是设置各种回调函数


有设备参数修改的,有响应键盘鼠标消息的,有响应D3D Device状态变化的,具体下节再详细分析。

 

 

3.2 DXUTInit
这个函数主要是解析命令行参数,告诉DXUT是否要弹出错误框(如果出错),以及是否要线程安全(设置和读取一个值时保证多线程下安全)。WinMain中也可以不用这个函数,DXUT会自行调用,并使用默认参数。默认是显示错误框,线程不安全的。

 

 

3.3 DXUTSetCursorSettings
在全屏下是否显示光标,是否剪裁光标(当光标只有一部分在视角内时)

 

 

3.4 DXUTCreateWindow
创建窗口

 

3.5 DXUTCreateDevice
创建Direct3D设备

 

 

3.6 DXUTMainLoop
主循环

 

3.7 DXUTGetExitCode
程序退出时返回错误值

 

至此,DXUT11程序就运行起来了。

 


---------------------
作者:TechTiger
来源:CSDN
原文:https://blog.csdn.net/techtiger/article/details/11521341
版权声明:本文为博主原创文章,转载请附上博文链接!

posted on 2019-07-29 10:34  guanxi0808  阅读(287)  评论(0)    收藏  举报

导航