DirectX9.0中用来进行设备检测的函数汇总

1. IDirect3D9::CheckDeviceType

HRESULT CheckDeviceType(

[in] UINT Adapter,

[in] D3DDEVTYPE DeviceType,

[in] D3DFORMAT DisplayFormat,

[in] D3DFORMAT BackBufferFormat,

[in] BOOL Windowed

)

【功能描述】该函数用来检测当前指定的的硬件加速类型是否可用。

【参数描述】

Adapter: 适配器编号

DeviceType: 当前使用的硬件加速模式,可以是如下几种

 typedef enum D3DDEVTYPE {
 D3DDEVTYPE_HAL = 1,
 D3DDEVTYPE_NULLREF = 4,
 D3DDEVTYPE_REF = 2,
 D3DDEVTYPE_SW = 3,
 D3DDEVTYPE_FORCE_DWORD = 0xffffffff 
} D3DDEVTYPE, *LPD3DDEVTYPE;
DisplayFormat:当前适配器的显示格式,注意不是BackBufferFormat的格式,这个参数可以通过GetAdapterDisplayMode()函数得到。
BackBufferFormat: BackBuffer格式,对于窗口模式的应用来说,BackBuffer的格式可以和DisplayFormat不一样,前提是硬件支持相应的格式转换,关于是否支持格式转换可以通过CheckDeviceFormatConversion()该接口来判断。对于全屏程序来说BackBuffer的格式必须和DisplayFromat格式一样,全屏应用程序不支持格式转换。
Windowed: 是否为窗口程序
 

2. IDirect3D9:: GetDeviceCaps

HRESULT GetDeviceCaps(

[in] UINT Adapter,

[in] D3DDEVTYPE DeviceType,

[out] D3DCAPS9 *pCaps

)

【功能描述】该函数用来获取指定设备的规格,通过PCaps的返回值可以查看设备支持情况,具体参数描述参看帮助文档。

3. IDirect3D9::CheckDeviceFormat

HRESULT CheckDeviceFormat(

[in] UINT Adapter,

[in] D3DDEVTYPE DeviceType,

[in] D3DFORMAT AdapterFormat,

[in] DWORD Usage,

[in] D3DRESOURCETYPE RType,

[in] D3DFORMAT CheckFormat

)

【功能描述】该函数用来判定指定用途或者格式的表面是否可用。

【参数描述】

Adapter: 适配器编号

DeviceType: 设备类型

AdapterFormat: Display Mode的格式,而不是BackBuffer的格式,这个参数最好通过GetAdapterDisplayMode()接口获得。

Usage: 表面用途

RType: 资源类型,如下几种:

typedef enum D3DRESOURCETYPE {
 D3DRTYPE_SURFACE = 1,
 D3DRTYPE_VOLUME = 2,
 D3DRTYPE_TEXTURE = 3,
 D3DRTYPE_VOLUMETEXTURE = 4,
 D3DRTYPE_CubeTexture = 5,
 D3DRTYPE_VERTEXBUFFER = 6,
 D3DRTYPE_INDEXBUFFER = 7,
 D3DRTYPE_FORCE_DWORD = 0x7fffffff 
} D3DRESOURCETYPE, *LPD3DRESOURCETYPE;

CheckFormat: 待检测格式

4. 其他的检测函数:IDirect3D9::CheckDepthStencilMatch,IDirect3DDevice9Ex::CheckDeviceState,这两个在此不详细介绍,等用到时可以查看帮助

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值