Freigeben über


IDirect3DDevice9::SetRenderTarget-Methode (d3d9.h)

Legt einen neuen Farbpuffer für das Gerät fest.

Syntax

HRESULT SetRenderTarget(
  [in] DWORD             RenderTargetIndex,
  [in] IDirect3DSurface9 *pRenderTarget
);

Parameter

[in] RenderTargetIndex

Typ: DWORD

Index des Renderziels. Siehe Hinweise.

[in] pRenderTarget

Typ: IDirect3DSurface9*

Zeiger auf einen neuen Farbpuffer. Bei NULL ist der Farbpuffer für den entsprechenden RenderTargetIndex deaktiviert. Geräte müssen immer einem Farbpuffer zugeordnet sein. Für die neue Renderzieloberfläche muss mindestens D3DUSAGE_RENDERTARGET angegeben sein.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Diese Methode gibt D3DERR_INVALIDCALL zurück, wenn einer der folgenden Aktionen gilt:

  • pRenderTarget = NULL und RenderTargetIndex = 0
  • pRenderTarget ist != NULL , und das Renderziel ist ungültig.

Hinweise

Das Gerät kann mehrere Renderziele unterstützen. Die Anzahl der von einem Gerät unterstützten Renderziele ist im NumSimultaneousRTs-Member von D3DCAPS9 enthalten. Weitere Informationen finden Sie unter Mehrere Renderziele (Direct3D 9).

Das Festlegen eines neuen Renderziels führt dazu, dass der Viewport (siehe Viewports und Clipping (Direct3D 9)) auf die volle Größe des neuen Renderziels festgelegt wird.

Einige Hardwaretests testen die Kompatibilität des Tiefenschablonenpuffers mit dem Farbpuffer. Wenn dies geschieht, erfolgt dies nur in einem Debugbuild.

Einschränkungen für die Verwendung dieser Methode umfassen Folgendes:

  • Der Multisampeltyp muss für das Renderziel und die Tiefenschablonenoberfläche identisch sein.
  • Die Formate müssen für das Renderziel und die Tiefenschablonenoberfläche kompatibel sein. Siehe IDirect3D9::CheckDepthStencilMatch.
  • Die Größe der Tiefenschablonenfläche muss größer oder gleich der Größe des Renderziels sein.
Diese Einschränkungen werden nur überprüft, wenn die Debuglaufzeit verwendet wird, wenn eine der IDirect3DDevice9Draw-Methoden aufgerufen wird.

Cubetexturen unterscheiden sich von anderen Oberflächen darin, dass es sich um Sammlungen von Oberflächen handelt. Um IDirect3DDevice9::SetRenderTarget mit einer Cubetextur aufzurufen, müssen Sie mithilfe von IDirect3DCubeTexture9::GetCubeMapSurface ein einzelnes Gesicht auswählen und die resultierende Oberfläche an IDirect3DDevice9::SetRenderTarget übergeben.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9