Microsoft DirectX 8.0 (C++) |
デバイスに新しいカラー バッファと深度バッファの一方または両方を設定する。
HRESULT SetRenderTarget( IDirect3DSurface8* pRenderTarget, IDirect3DSurface8* pNewZStencil );
新しいレンダリング ターゲットのサーフェスには、少なくとも D3DUSAGE_RENDERTARGET が指定されていなければならない。
新しい深度ステンシル サーフェスには、少なくとも D3DUSAGE_DEPTHSTENCIL と D3DPOOL_DEFAULT が指定されていなければならない。
成功した場合は、D3D_OK を返す。
pRenderTarget または pNewZStencil が NULL 以外で無効な値の場合、あるいは新しい深度バッファが新しいカラー バッファまたは引き続き使われるカラー バッファより小さい場合は、D3DERR_INVALIDCALL を返す。
このメソッドを使ってカラー バッファと深度ステンシル サーフェスを同じデバイスに関連付けることを、両者をペアにするという。
デバイスは、SetRenderTarget に NULL 以外のサーフェスが渡されるたびに、AddRef を呼び出す。その後、デバイスは以前に設定されているカラー バッファに対して Release を呼び出す。
SetRenderTarget を呼び出して以前の深度ステンシル サーフェスとデバイスの関連を切断した後でも、前の深度ステンシル サーフェスのコンテンツは保持される。そのサーフェスをデバイスと再び関連付けると、新しい深度ステンシル サーフェスとペアにされているカラー バッファのサイズとフォーマットが、深度ステンシル サーフェスと最後にペアになっていたカラー バッファと同じならば、サーフェスのコンテンツは変更されない。
このメソッドを呼び出すと、デバイスの現在のビューポートは、現在のレンダリング ターゲットのサイズにリセットされる。この処理は、Z バッファだけが変更されるかどうかに関係なく行われる。
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。
IDirect3DDevice8::CreateDepthStencilSurface、IDirect3DDevice8::GetDepthStencilSurface