初始化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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章