Direct3D9初始化
IDirect3D9 * d3d9 = Direct3DCreate9( D3D_SDK_VERSION ) ;
参数D3D_SDK_VERSION:保证应用程序使用正确的头文件。
IDirect3D9对象主要有两个用途:设备枚举以及创建 IDirect3DDevice9类型的对象。设备枚举是指获取系统可用的每块图形卡的性能,显示模式,格式及其它信息。
要进行检查,我们先得到显卡的性能参数:
D3DCAPS9 caps;
d3d9->GetDeviceCaps(
D3DADAPTER_DEFAULT, //主显卡
D3DDEVTYPE_HAL,
&caps);
int vp = 0;
if (caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
{
vp= D3DCREATE_HARDWARE_VERTESPROCESSING;
}
else
{
vp = D3DCREATE_SOFTWARE_VERTESPROCESSING;
}
*开发应用程序时,若需要一些新的,特别的或高级的特性(那些没有得到硬件广泛支持的特性),在使用前总是先检查一下设备性能(D3DCAPS)是否支持该特性,是很有必要的。
- 获取接口 IDirect3D9的指针。该接口用于获取系统中物理硬件设备的信息并创建接口IDirect3DDevice9,该接口是一个C++对象,代表了我们用来显示3D图形的物理硬件设备。
- 检查设备性能(D3DCAPS9),判断主显卡是否支持硬件定点运算。为了创建接口 IDirect3DDevice9,我们必须明确显卡是否支持该功能。
- 初始化D3DPRESENT_PARAMETERS结构的一个实例。该结构由许多数据成员组成,我们可以通过这些变量来指定即将创建的结构 IDirect3DDevice9的特性。
- 利用已初始化的 D3DPRESENT_PARAMETERS结构创建 IDirect3DDevice9对象(代表了我们用来显示3D图形的物理硬件设备)。
- 获取接口 IDirect3D9的指针
IDirect3D9 * d3d9 = Direct3DCreate9( D3D_SDK_VERSION ) ;
参数D3D_SDK_VERSION:保证应用程序使用正确的头文件。
IDirect3D9对象主要有两个用途:设备枚举以及创建 IDirect3DDevice9类型的对象。设备枚举是指获取系统可用的每块图形卡的性能,显示模式,格式及其它信息。
- 校验硬件顶点运算
要进行检查,我们先得到显卡的性能参数:
D3DCAPS9 caps;
d3d9->GetDeviceCaps(
D3DADAPTER_DEFAULT, //主显卡
D3DDEVTYPE_HAL,
&caps);
int vp = 0;
if (caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT)
{
vp= D3DCREATE_HARDWARE_VERTESPROCESSING;
}
else
{
vp = D3DCREATE_SOFTWARE_VERTESPROCESSING;
}
*开发应用程序时,若需要一些新的,特别的或高级的特性(那些没有得到硬件广泛支持的特性),在使用前总是先检查一下设备性能(D3DCAPS)是否支持该特性,是很有必要的。
- 填充 D3DPRESENT_PARAMETERS 结构
D3DPRESENT_PARAMETERS d3dpp;
然后为程序为需要的值赋值:
d3dpp.Windowed = false; //指定全屏显示
然后为程序为需要的值赋值:
d3dpp.Windowed = false; //指定全屏显示
- 创建 IDirect3DDevice9接口
IDirect3DDevice9 * device = 0;
d3d9->CreateDevice(
D3DADAPTER_DEFAULT, //主显卡
D3DDEVTYPE_HAL, //设备类型
hwnd, //对应窗口句柄
D3DCREATE_HARDWARE_VERTESPROCESSING, //顶点处理类型
&d3dpp, //设定的 D3DPRESENT_PARAMETERS结构
&device ); //返回创建的设备
d3d9->CreateDevice(
D3DADAPTER_DEFAULT, //主显卡
D3DDEVTYPE_HAL, //设备类型
hwnd, //对应窗口句柄
D3DCREATE_HARDWARE_VERTESPROCESSING, //顶点处理类型
&d3dpp, //设定的 D3DPRESENT_PARAMETERS结构
&device ); //返回创建的设备