Microsoft DirectX 8.0 (Visual Basic) |
サーフェスのフォーマットが、指定したリソース タイプとして利用できるかどうか、およびこのアダプタを使用するデバイスでテクスチャ、深度ステンシル バッファ、レンダリング ターゲットのいずれか、またはこれら 3 つの組み合わせとして使用できるかどうかを調べる。
object.CheckDepthStencilMatch( _ Adapter As Long, _ DeviceType As CONST_D3DDEVTYPE, _ AdapterFormat As CONST_D3DFORMAT, _ RenderTargetFormat As CONST_D3DFORMAT, _ DepthStencilFormat As CONST_D3DFORMAT) As Long
深度ステンシル フォーマットが、ディスプレイ モードのターゲット レンダリング フォーマットと互換性がある場合、このメソッドは 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
上の呼び出しは、DepthFormat が AdapterFormat および BackBufferFormat と組み合わせて使用できない場合、FALSE を返す。