Microsoft DirectX 8.0 (Visual Basic)

ステンシル バッファとは

ステンシル バッファは、レンダリング ターゲット サーフェスのピクセル単位の描画を有効または無効にする。このバッファの最も基本的なレベルでは、アプリケーションがレンダリングした画像の部分をマスクで覆うことが可能になり、その画像が表示されない。アプリケーションはディゾルブ、デカーリング、およびアウトライニングなどの特殊効果のためにステンシル バッファを使用することが多い。詳細については、「ステンシル バッファ技術」を参照すること。

ステンシル バッファ情報は、Z バッファ データに埋め込まれている。Direct3D8.CheckDeviceFormat を使用して、ハードウェアがステンシル バッファをサポートしているかどうかを調べることができる。次のコードに例を示す。

' 次の例では、g_D3D、AdapterOrdinal、DeviceType、
' および Format は、正しく初期化された値であると仮定している。

g_D3D.CheckDeviceFormat AdapterOrdinal, DeviceType, Format, _
                        D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, _
                        D3DFMT_D24S8
If Err.Number <> D3D_OK Then 
    ' エラーを処理する。
End If

CheckDeviceFormat では、該当するデバイスの能力に基づいて、作成するデバイスを選択できる。この場合、8 ビットのステンシル バッファをサポートしないデバイスは、Err.Number をエラー値に設定する。これは CheckDeviceFormat で使用できる方法の 1 つにすぎない。詳細については、「ハードウェア サポートの判定」を参照すること。

デバイスでのステンシル バッファ制限を調べるには、サポートされているステンシル バッファ処理について D3DCAPS8 型の StencilCaps メンバに問い合わせる。