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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值