初始化Direct3D

 初始化D3D:
一、获得一个IDirect3D9接口指针。这个接口指针用于获得物理设备的信息和创建一个IDirect3DDevice9接口
IDirect3D9 * Direct3DCreate9(
  UINT SDKVersion        // 总是D3D_SDK_VERSION
);                

 // Direct3DCreate9(MSDN)

二、检查设备的技术特性(D3DCAPS9),搞清楚主显示卡是否支持硬件顶点处理。我们需要知道假如它能支持,我们就能创建IDirect3DDevice9接口
HRESULT GetDeviceCaps(
  UINT Adapter,            // 指定要获得哪个显示适配器的特性
  D3DDEVTYPE DeviceType,    // 指定设备类型(硬件设备(D3DDEVTYPE_HAL),软件设备(D3DDEVTYPE_REF))
  D3DCAPS9 * pCaps        // 返回一个已初始化的D3DCAPS9结构
);               

 //   IDirect3D9::GetDeviceCaps(MSDN)

三、初始化一个D3DPRESENT_PARAMETERS结构实例,它允许我们指定将要创建的IDirect3DDevice9接口的特性
typedef struct D3DPRESENT_PARAMETERS {
    UINT BackBufferWidth;
    UINT BackBufferHeight;
    D3DFORMAT BackBufferFormat;
    UINT BackBufferCount;
    D3DMULTISAMPLE_TYPE MultiSampleType;
    DWORD MultiSampleQuality;
    D3DSWAPEFFECT SwapEffect;
    HWND hDeviceWindow;
    BOOL Windowed;
    BOOL EnableAutoDepthStencil;
    D3DFORMAT AutoDepthStencilFormat;
    DWORD Flags;
    UINT FullScreen_RefreshRateInHz;
    UINT PresentationInterval;
} D3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;
//  D3DPRESENT_PARAMETERS(MSDN)

四、创建基于D3DPRESENT_PARAMETERS结构实例的IDirect3DDevice9对象,它代表我们显示3D图形的物理设备的C++对象
HRESULT CreateDevice(
  UINT Adapter,            // 指定对象要表示的物理显示设备
  D3DDEVTYPE DeviceType,    // 设备类型
  HWND hFocusWindow,        // 与设备相关的窗口句柄
  DWORD BehaviorFlags,        // 设定为D3DCREATE_SOFTWARE_VERTEXPROCESSING或者D3DCREATE_HARDWARE_VERTEXPROCESSING
  D3DPRESENT_PARAMETERS * pPresentationParameters,     // 指定一个初始化好的D3DPRESENT_PARAMETERS实例
  IDirect3DDevice9 ** ppReturnedDeviceInterface        // 返回创建的设备
); //   IDirect3D9::CreateDevice(MSDN)

你可能感兴趣的:(初始化Direct3D)