Microsoft DirectX 8.0 (Visual Basic)

Direct3D8.CheckDepthStencilMatch

サーフェスのフォーマットが、指定したリソース タイプとして利用できるかどうか、およびこのアダプタを使用するデバイスでテクスチャ、深度ステンシル バッファ、レンダリング ターゲットのいずれか、またはこれら 3 つの組み合わせとして使用できるかどうかを調べる。

object.CheckDepthStencilMatch( _ 
    Adapter As Long, _ 
    DeviceType As  CONST_D3DDEVTYPE, _ 
    AdapterFormat As CONST_D3DFORMAT, _ 
    RenderTargetFormat As CONST_D3DFORMAT, _ 
    DepthStencilFormat As CONST_D3DFORMAT) As Long

指定項目

object
Direct3D8 オブジェクトを表すオブジェクト式。
Adapter
照会するディスプレイ アダプタを示す序数。D3DADAPTER_DEFAULT は常にプライマリ ディスプレイ アダプタである。
DeviceType
デバイス タイプを識別する CONST_D3DDEVTYPE 列挙のメンバ。
AdapterFormat
CONST_D3DFORMAT 列挙のメンバ。アダプタで使用されるディスプレイ モードのフォーマットを識別する。
RenderTargetFormat
テストするレンダリング ターゲット サーフェスのフォーマットを識別する CONST_D3DFORMAT 列挙のメンバ。
DepthStencilFormat
テストする深度ステンシル サーフェスのフォーマットを識別する CONST_D3DFORMAT 列挙のメンバ。

戻り値

深度ステンシル フォーマットが、ディスプレイ モードのターゲット レンダリング フォーマットと互換性がある場合、このメソッドは D3D_OK を返す。

引数の 1 つ以上が無効な場合は、D3DERR_INVALIDCALL が返される場合がある。深度ステンシル フォーマットが、ディスプレイ モードのターゲット レンダリング フォーマットと互換性がない場合、このメソッドは D3DERR_NOTAVAILABLE を返す。

エラー コード

このメソッドでは、Err.Number は設定されていない。

注意

このメソッドは、特定の深度フォーマットが特定のレンダリング ターゲット フォーマットでのみ機能するハードウェア レンダリングでアプリケーションが機能できるようにするために用意されている。次のコードは、CheckDeviceFormat を使用して深度ステンシル フォーマットを検証する方法を示している。

Function IsDepthFormatOK( DepthFormat As CONST_D3DFORMAT, AdapterFormat As CONST_D3DFORMAT, _ 
                          BackBufferFormat As CONST_D3DFORMAT) as Boolean

      Dim check As Long

      check = d3d.CheckDeviceFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, _ 
                                    D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, DepthFormat)
      If (check < 0) Then Exit Function   ' FALSE を返す。

      check = d3d.CheckDepthStencilFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, AdapterFormat, _ 
                          RenderTargetFormat, DepthFormat)
      If (check < 0) Then
         IsDepthStencilFormatOK = False
      Else
         IsDepthStencilFormatOK = True
      End If

End function

上の呼び出しは、DepthFormatAdapterFormat および BackBufferFormat と組み合わせて使用できない場合、FALSE を返す。