Microsoft DirectX 8.0 (Visual Basic) |
このアダプタで特定のデバイス タイプを使用して、特定のフォーマットを使ったハードウェア アクセラレーションを期待できるかどうかを確認する。
object.CheckDeviceType( _ Adapter As Long, _ CheckType As CONST_D3DDEVTYPE, _ DisplayFormat As CONST_D3DFORMAT, _ BackBufferFormat As CONST_D3DFORMAT, _ bWindowed As Long) As Long
このアダプタでデバイスを使用できる場合は、D3D_OK を返す。
Adapter がシステムのディスプレイ アダプタの数以上の場合、このメソッドは D3DERR_INVALIDCALL を返す。CheckType が存在しないデバイスを指定していた場合、このメソッドは D3DERR_INVALIDDEVICE を返す。サーフェス フォーマットがサポートされていないか、指定されたフォーマットでハードウェア アクセラレーションが使用できない場合は、D3DERR_NOTAVAILABLE を返す。
このメソッドでは、Err.Number は設定されていない。
使用できない可能性のある最も重要なデバイス タイプは D3DDEVTYPE_HAL である。D3DDEVTYPE_HAL にはハードウェア アクセラレーションが必要である。アプリケーションでは、CheckDeviceType を使って、必要なハードウェアとドライバがシステムにあるかどうかを確認する必要がある。使用できない可能性のあるもう 1 つのデバイスは D3DDEVTYPE_SW である。このデバイス タイプは、Direct3D8.RegisterSoftwareDevice を使って登録されたプラグ可能なソフトウェア デバイスを表す。
アプリケーションでは、アルファ チャネルを含む DisplayFormat を指定すべきではない。この場合、呼び出しは失敗する。アルファ チャネルはバック バッファに存在している場合があるが、2 つのディスプレイ フォーマットはほかのすべての面で同じでなければならない。たとえば、DisplayFormat が D3DFMT_X1R5G5B5 である場合、BackBufferFormat の有効な値には D3DFMT_X1R5G5B5 および D3DFMT_A1R5G5B5 は含まれるが、D3DFMT_R5G6B5 は除外される。
次のコードは、デフォルトのアダプタが、ハードウェア アクセラレーションを使って、ウィンドウ モードで RGB565 カラーを処理するかどうかをチェックする。
Dim DisplayFormat As CONST_D3DFORMAT, BackBufferFormat As CONST_D3DFORMAT Dim IsWindowed As Long, bModeOK As Boolean, Check As Long DisplayFormat = D3DFMT_R5G6B5 BackBufferFormat = D3DFMT_R5G6B5 IsWindowed = 1 'TRUE Check = d3d.CheckDeviceType(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, DisplayFormat, BackBufferFormat, IsWindowed) If (Check >= 0) Then bModeOK = True Else bModeOK = False End If