Microsoft DirectX 8.0 (Visual Basic)

Direct3D8.CheckDeviceType

このアダプタで特定のデバイス タイプを使用して、特定のフォーマットを使ったハードウェア アクセラレーションを期待できるかどうかを確認する。

object.CheckDeviceType( _ 
    Adapter As Long, _ 
    CheckType As CONST_D3DDEVTYPE, _ 
    DisplayFormat As CONST_D3DFORMAT, _ 
    BackBufferFormat As CONST_D3DFORMAT, _ 
    bWindowed As Long) As Long

指定項目

object
Direct3D8 オブジェクトを表すオブジェクト式。
Adapter
列挙するディスプレイ アダプタを示す序数。D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプタである。この値がシステムのディスプレイ アダプタの数以上の場合、このメソッドは D3DERR_INVALIDCALL を返す。
CheckType
CONST_D3DDEVTYPE 列挙のメンバ。検査するデバイス タイプを示す。
DisplayFormat
CONST_D3DFORMAT 列挙のメンバ。デバイス タイプを検査するアダプタ ディスプレイ モードのフォーマットを示す。たとえば、デバイスによっては、ピクセル単位の 16 ビットのモードでのみ動作する。
BackBufferFormat
CONST_D3DFORMAT 列挙のメンバ。デバイス タイプを検査するアダプタ ディスプレイ モードのフォーマットを示す。たとえば、デバイスによっては、ピクセル単位の 16 ビットのモードでのみ動作する。
bWindowed
デバイス タイプがフルスクリーン モードとウィンドウ モードのいずれで使用されるかを指定する値。TRUE に設定した場合、ウィンドウ アプリケーションの照会が実行される。それ以外の場合は、この値を FALSE に設定することが望ましい。

戻り値

このアダプタでデバイスを使用できる場合は、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