Freigeben über


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

Zeigt den Inhalt des nächsten Puffers in der Sequenz der Sicherungspuffer an, die der Swapchain gehören.

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 an die Quelloberfläche gekappt.

[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 zu füllen. Wenn das Rechteck den Zielclientbereich überschreitet, wird das Rechteck an den Zielclientbereich gekappt.

[in] hDestWindowOverride

Typ: HWND

Zielfenster, dessen Clientbereich als Ziel für diese Präsentation verwendet wird. Wenn dieser Wert NULL ist, verwendet die Runtime das hDeviceWindow-Element 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. Siehe Flipping Surfaces (Direct3D 9).

Wenn dieser Wert nicht NULL ist, wird der enthaltene Bereich in Zurückpufferkoordinaten ausgedrückt. Die Rechtecke innerhalb der Region sind der minimale Satz von Pixeln, die aktualisiert werden müssen. Diese Methode berücksichtigt diese Rechtecke beim Optimieren der Präsentation, indem nur die Pixel innerhalb der Region oder einige entsprechend erweiterte Rechtecke kopiert werden. Dies ist nur eine Hilfe zur 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 das Anfordern, dass die Methode sofort zurückgegeben wird, wenn der Treiber meldet, dass sie keine Präsentation planen 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 die Gammakorrektur vom linearen Raum in sRGB für Swapketten 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 sie keine Präsentation planen kann.

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

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

Anforderungen

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

Weitere Informationen

IDirect3DSwapChain9

Zurücksetzen