一般的Direct3D程序通常有以下5步
(1)初始化Direct3D
所有的Direct3D程序,都是从创建一个IDirect3D9 interface 开始,以这个接口的->Release()结束。这个接口可以说代表了整个Direct3D程序的生命周期。他也是其他一系列Direct3D接口的祖先接口。
在DirectX9中,我们通过 Direct3DCreate9 方法来获取一个此接口的指针。
参数 UINT SDKVersion 的值永远都是 D3D_SDK_VERSION
如果成功,则返回一个IDirect3D9接口的指针,否则返回NULL
最后程序结束时,需要release
(2)创建一个Direct3D Device
Direct3D device被封装到了 IDirect3DDevice9中,我们通过实例化此接口来代表我们的电脑的显卡。一般只有一个此接口的实例,因为通常我们的电脑只有一块点卡,当前也可以有更多。
此接口异常强大,他有许多方法,可以检测图形设备支持的功能、操作3D世界、将数据渲染到屏幕上等功能。
为了得到此接口的实例,我们必须调用上面我们获得的IDirect3D9的CreateDevice方法。
UINT Adapter : 一个数字参数,代表了我们使用哪个显卡,设为D3DADAPTER_DEFAULT使用主显卡
D3DDEVTYPE DeviceType : D3DDEVTYPE是个enum,包括以下值
如果指定的device type 不可用,此方法会失败.如果设备支持一般使用D3DDEVTYPE_HAL
DWORD BehaviorFlags : 这里我们使用D3DCREATE_HARDWARE_VERTEXPROCESSING,还可以有其他组合,参见SDK
然后就是D3DPRESENT_PARAMETERS 结构体的指针,描述了索要创建的Device的一些属性