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 |