Platform SDK: DirectX |
通常、アプリケーションの起動シーケンス中に深度バッファを作成した後で、レンダリング用に Direct3D デバイス オブジェクトを作成する。次の手順を実行して、深度バッファ サーフェスを作成し、レンダリング ターゲット サーフェスにアタッチする。
C++ アプリケーションで深度バッファを作成するには
深度バッファ サーフェスを作成し、レンダリング ターゲット サーフェスにアタッチした後、IDirect3D7::CreateDevice メソッドを呼び出してレンダリング ターゲット サーフェスとその深度バッファを使用するレンダリング デバイスを作成する。
アプリケーションでハードウェア ドライバ (HAL デバイス) を使用するときは、DDSCAPS_VIDEOMEMORY サーフェス機能を利用してビデオ メモリに深度バッファを作成する。ソフトウェア エミュレーション ドライバ (MMX または RGB デバイス) を使用するときは、DDSCAPS_SYSTEMMEMORY サーフェス機能を利用してシステム メモリに深度バッファを作成する。該当する種類のメモリで深度バッファの作成が失敗した場合、CreateDevice メソッドも失敗する。
注 : 広く使用されている一部のハードウェアでは、レンダリング ターゲットおよび深度バッファ サーフェスで同じビット深度を使用する必要がある。そのようなハードウェアでは、アプリケーションで 16 ビットのレンダリング ターゲット サーフェスを使用する場合は、アタッチする深度バッファも 16 ビットでなければならない。32 ビットのレンダリング ターゲット サーフェスであれば、32 ビットの深度バッファでなければならない。8 ビットの深度バッファは、必要に応じてステンシル バッファリングに使用できる。
アプリケーションが動作するハードウェアにこのような要件があり、アプリケーションがこれを満たしていない場合、非対応サーフェスを使用するレンダリング デバイスを作成しようとすると失敗する。DirectDraw メソッドの IDirectDraw7::GetDeviceIdentifier を使用して、この制限があるハードウェアを特定できる。
Visual Basic アプリケーションで深度バッファを作成するには
深度バッファ サーフェスを作成し、レンダリング ターゲット サーフェスにアタッチした後、Direct3D7.CreateDevice メソッドを呼び出して、レンダリング ターゲット サーフェスとその深度バッファを使用するレンダリング デバイスを作成する。
アプリケーションでハードウェア ドライバ (HAL デバイス) を使用するときは、DDSCAPS_VIDEOMEMORY サーフェス機能を利用してビデオ メモリに深度バッファを作成する。ソフトウェア エミュレーション ドライバ (MMX または RGB デバイス) を使用するときは、DDSCAPS_SYSTEMMEMORY サーフェス機能を利用してシステム メモリに深度バッファを作成する。該当する種類のメモリで深度バッファの作成が失敗した場合、CreateDevice メソッドも失敗する。
注 : 広く使用されている一部のハードウェアでは、レンダリング ターゲットおよび深度バッファ サーフェスで同じビット深度を使用する必要がある。そのようなハードウェアでは、アプリケーションで 16 ビットのレンダリング ターゲット サーフェスを使用する場合は、アタッチする深度バッファも 16 ビットでなければならない。32 ビットのレンダリング ターゲット サーフェスであれば、32 ビットの深度バッファでなければならない。8 ビットの深度バッファは、必要に応じてステンシル バッファリングに使用できる。
アプリケーションが動作するハードウェアにこのような要件があり、アプリケーションがこれを満たしていない場合、非対応サーフェスを使用するレンダリング デバイスを作成しようとすると失敗する。DirectDraw メソッドの DirectDraw7.GetDeviceIdentifier および関連するオブジェクト (DirectDrawIdentifier) を使用して、この制限があるハードウェアを特定できる。