概览
本教程将介绍DXUT。DXUT是一个建立在Direct3D之上的一个层,它能帮助我们建立一个更健壮、更易于生成的示例,原型,工具或游戏,它基于典型应用简化了Windows和Direct3D的API。
本教程的显示结果与上一个教程相同,但是实现起来简单得多。
源代码
(SDK root)\Samples\C++\Direct3D10\Tutorials\Tutorial08
DXUT
DXUT提供了一个简化的过程用来创建窗口,创建(或选择)一个Direct3D设备,处理Windows消息,这可以让你节省实现这些标准任务所用的时间。
用于Direct3D的DXUT还是高度组件化的,DXUT的核心组件包括标准窗体的创建,设备创建和管理功能。可选组件包括相机控制,GUI系统和网格处理。本教程介绍DXUT核心组件,可选组件在后面的教程中介绍。本教程中介绍的功能包括设备创建,主循环和简单的键盘输入。
DXUT开放了很多用户可以挂钩的回调函数,在程序执行过程中回调函数可以被DXUT在逻辑点上进行调用。你可以将自定义代码插入到这些回调函数中。
DXUT支持程序包含Direct3D 9和/或Direct3D 10代码路径,这样就可以让DXUT选择最适合程序当前运行的系统的代码路径。但是,本教程只关注Direct3D 10绘制,让DXUT同时生成Direct3D 9和Direct3D 10程序的例子,可参见DirectX SDK中的BasicHLSL10示例。
设置Callback函数
修改程序的WinMain方法是第一步。在前面的教程中,WinMain调用initialization方法,然后进入消息循环。在DXUT框架中,WinMain的工作类似。
首先,由程序设置回调函数。这些函数是在当特定事件发生时由DXUT调用的,这些事件包括设备创建,交换链创建,键盘输入,帧更新(frame move)和帧绘制。
1
2
3
4
5
6
7
8
9
10
|