DXUT11框架浅析(7)--全局变量管理

来源:互联网 发布:邪恶漫画之知子继母 编辑:程序博客网 时间:2024/05/16 16:06




DXUT11框架浅析(7)--全局变量管理

 

 

 

         DXUT11所有状态、指针等需要全局使用的变量都存放在类DXUTState中。

 

1. DXUTState类

 

该类只有一个成员变量m_state。结构体STATE中大致包括三类成员:一是存放各种D3D接口指针,如IDirect3D9、ID3D11Device等;二是存放各种状态、条件变量;三是存放回调(callback)函数以及每个函数的用户上下文(context,比如多个线程引发回调,用这个区别不同的对象回调)。


该类的方法主要有创建Create()和注销Destroy()。此外都是Get*()和Set*()读写属性值的方法。为了缩减代码量,使用了宏GET_SET_ACCESSOR。

 

 

 

2. 使用DXUTState读写变量

 

         在DXUT.h中,又定义了一系列DXUTGet*()、DXUTSet*()、DXUTIs*()等方法来实现对一个全局的g_pDXUTState对象的调用,从而实现读写各种全局变量。


DXUTCreateState()

为全局变量g_pDXUTState创建对象。

 

DXUTDestroyState()

删除g_pDXUTState对象。


class DXUTMemoryHelper

在构建函数里调用DXUTCreateState,在析构函数里调用DXUTDestroyState,实现简单的对对象g_pDXUTState的内存管理。

 

DXUTState& GetDXUTState()

得到全局变量g_pDXUTState的指针。

 

 

 

原创粉丝点击