IDirect3DSwapChain9::P resent-Methode (d3d9helper.h)

Zeigt den Inhalt des nächsten Puffers in der Sequenz der Zurückpuffer an, die sich im Besitz der Swapchain befinden.

Syntax

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Parameter

[in] pSourceRect

Typ: const RECT*

Zeiger auf das Quellrechteck (siehe RECT). Verwenden Sie NULL , um die gesamte Oberfläche darzustellen. Dieser Wert muss NULL sein, es sei denn, die Swapchain wurde mit D3DSWAPEFFECT_COPY erstellt. Wenn das Rechteck die Quelloberfläche überschreitet, wird das Rechteck auf die Quelloberfläche zugeschnitten.

[in] pDestRect

Typ: const RECT*

Zeiger auf das Zielrechteck in Clientkoordinaten (siehe RECT). Dieser Wert muss NULL sein, es sei denn, die Swapchain wurde mit D3DSWAPEFFECT_COPY erstellt. Verwenden Sie NULL , um den gesamten Clientbereich auszufüllen. Wenn das Rechteck den Zielclientbereich überschreitet, wird das Rechteck in den Zielclientbereich abgeschnitten.

[in] hDestWindowOverride

Typ: HWND

Zielfenster, dessen Clientbereich als Ziel für diese Präsentation verwendet wird. Wenn dieser Wert NULL ist, verwendet die Runtime den hDeviceWindow-Member von D3DPRESENT_PARAMETERS für die Präsentation.

[in] pDirtyRegion

Typ: const RGNDATA*

Dieser Wert muss NULL sein, es sei denn, die Swapchain wurde mit D3DSWAPEFFECT_COPY erstellt. Weitere Informationen finden Sie unter Flipping Surfaces (Direct3D 9).

Wenn dieser Wert ungleich NULL ist, wird der enthaltene Bereich in Zurückpufferkoordinaten ausgedrückt. Die Rechtecke innerhalb des Bereichs sind der minimale Satz von Pixeln, die aktualisiert werden müssen. Diese Methode berücksichtigt diese Rechtecke bei der Optimierung der Präsentation, indem nur die Pixel innerhalb des Bereichs oder einige entsprechend erweiterte Rechtecke kopiert werden. Dies ist nur eine Hilfe für die Optimierung, und die Anwendung sollte sich nicht darauf verlassen, dass die Region genau kopiert wird. Die Implementierung kann das gesamte Quellrechteck kopieren.

[in] dwFlags

Typ: DWORD

Ermöglicht der Anwendung, anzufordern, dass die Methode sofort zurückgegeben wird, wenn der Treiber meldet, dass eine Präsentation nicht geplant werden kann. Gültige Werte sind 0 oder eine beliebige Kombination aus D3DPRESENT_DONOTWAIT oder D3DPRESENT_LINEAR_CONTENT.

  • Wenn dwFlags = 0 ist, verhält sich diese Methode wie vor Direct3D 9. Present wird so lange gedreht, bis die Hardware frei ist, ohne dass ein Fehler zurückgegeben wird.
  • Wenn dwFlags = D3DPRESENT_DONOTWAIT und die Hardware mit der Verarbeitung beschäftigt ist oder auf ein vertikales Synchronisierungsintervall wartet, gibt die Methode D3DERR_WASSTILLDRAWING zurück.
  • Wenn dwFlags = D3DPRESENT_LINEAR_CONTENT, wird eine Gammakorrektur vom linearen Raum zu sRGB für Swapchains mit Fenstern durchgeführt. Dieses Flag wird nur wirksam, wenn der Treiber D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION verfügbar macht (siehe Gamma (Direct3D 9)). Anwendungen sollten dieses Flag angeben, wenn das Backbufferformat 16-Bit-Gleitkomma ist, um den vorhandenen Fenstermodus dem Vollbild-Gammaverhalten zuzuordnen.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden Sein: D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY.

Hinweise

Die Present-Methode ist eine Verknüpfung zu Present. Present wurde aktualisiert, um ein Flag zu verwenden, mit dem die Anwendung anfordern kann, dass die Methode sofort zurückgegeben wird, wenn der Treiber meldet, dass eine Präsentation nicht geplant werden kann.

Bei Bedarf wird ein Stretchvorgang angewendet, um die Pixel im Quellrechteck auf das Zielrechteck im Clientbereich des Zielfensters zu übertragen.

Present schlägt fehl, wenn es zwischen BeginScene - und EndScene-Paaren aufgerufen wird, es sei denn, das Renderziel ist nicht das aktuelle Renderziel (z. B. der Hintergrundpuffer, den Sie durch das Erstellen einer zusätzlichen Swapchain erhalten). Dies ist ein neues Verhalten für Direct3D 9.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9helper.h (include D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DSwapChain9

Zurücksetzen