Directx sdk版本:April 2006
Visual Studio 2005
可能因为版本问题,安装SDK后没有在Visual Studio中生成D3D项目的向导,所以选择从DirectX Sample Browser中安装EmptyProject项目。
下面就对EmptyProject的框架结构稍作解析,以备忘。
整个框架最重要的类是DXUTState类。
在它的内部定义了一个结构State,这个结构的成员变量包含了D3D程序所需要的绝大多数属性和变量,包括设备,消息句柄,键盘鼠标输入,窗口状态,游戏循环和渲染函数等诸多内容。(要注意的是这里的函数都是指函数指针,比如OnFrameMove,OnFrameRender,MsgProc等用户需要自定义的函数都将通过函数指针被连接到这个结构中)
DXUTState类中唯一的一个保护成员变量是State类型的m_state,其他所有的公有成员函数(除了构造和析构函数)都是在get和set m_state中的变量。
现在可以说,整个框架的核心是State结构,又只能通过DXUTState类来使用它。
然后,DXUTState类又只能通过 DXUTState& GetDXUTState()这个函数来调用。整个函数非常短小精悍,如下:
DXUTState& GetDXUTState()
{
// Using an access