DirectX Sample : EmptyProject 框架认识

本文介绍了基于DirectX SDK April 2006和Visual Studio 2005的EmptyProject项目,分析了其框架的核心——DXUTState类及其State结构。DXUTState类通过DXUTState& GetDXUTState()函数提供访问,而关键的回调函数如OnCreateDevice、OnFrameRender等在主函数WinMain中设置,允许自定义实现。通过DXUTInit和DXUTMainLoop进行初始化和游戏循环,实现3D设备的创建与管理。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值