Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tauschen Sie den nächsten Puffer der Swapchain mit dem Frontpuffer aus.
Syntax
HRESULT PresentEx(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
Die Parameter
[in] pSourceRect
Typ: const RECT*
Zeiger auf eine RECT-Struktur , die region auf der Quelloberfläche angibt, die in Fensterclientkoordinaten kopiert werden soll. Gilt nur, wenn die Swapchain mit dem D3DSWAPEFFECT_COPY-Flag erstellt wurde. Wenn NULL, wird die gesamte Quelloberfläche angezeigt. Wenn das Rechteck die Quelloberfläche überschreitet, wird es auf die Quelloberfläche zugeschnitten.
[in] pDestRect
Typ: const RECT*
Zeiger auf RECT-Struktur , der den Zielbereich auf der Zieloberfläche in Fensterclientkoordinaten angibt. Gilt nur, wenn die Swapchain mit dem D3DSWAPEFFECT_COPY-Flag erstellt wurde. Wenn NULL, wird der gesamte Clientbereich ausgefüllt. Wenn das Rechteck den Zielclientbereich überschreitet, wird es an den Zielclientbereich abgeschnitten.
[in] hDestWindowOverride
Typ: HWND
Zeigen Sie auf ein Zielfenster, dessen Clientbereich als Ziel für diese Präsentation verwendet wird. Wenn dieser Wert NULL ist, verwendet die Laufzeit das hDeviceWindow-Element von D3DPRESENT_PARAMETERS für die Präsentation.
[in] pDirtyRegion
Typ: const RGNDATA*
Zeiger auf eine RGNDATA-Struktur , die den kleinsten Satz von Pixeln angibt, die übertragen werden müssen. Dieser Wert muss NULL sein, es sei denn, die Swapchain wurde mit dem D3DSWAPEFFECT_COPY-Flag erstellt. Weitere Informationen zu Swapchains finden Sie unter Flipping Surfaces (Direct3D 9).For more information about swapchains, see Flipping Surfaces (Direct3D 9).
Wenn dieser Wert ungleich NULL ist, wird der enthaltene Bereich in Hintergrundpufferkoordinaten ausgedrückt. Die Methode berücksichtigt diese Rechtecke beim Optimieren der Präsentation, indem nur die Pixel innerhalb des Bereichs oder einige entsprechend erweiterte Rechtecke kopiert werden. Dies ist nur eine Hilfe zur Optimierung, und die Anwendung sollte nicht darauf angewiesen sein, dass die Region genau kopiert wird. Die Implementierung kann das gesamte Quellrechteck kopieren.
[in] dwFlags
Typ: DWORD
Ermöglicht der Anwendung, die Methode sofort zurückzugeben, wenn der Treiber meldet, dass eine Präsentation nicht geplant werden kann. Gültige Werte sind 0 oder eine beliebige Kombination aus D3DPRESENT Flags.
- Wenn dwFlags = 0, verhält sich diese Methode wie vor Direct3D 9. Die Präsentation wird gedreht, bis die Hardware frei ist, ohne einen Fehler zurückzugeben.
- If dwFlags = D3DPRESENT_DONOTFLIP the display driver is called with the front buffer as both the source and target surface. Der Treiber reagiert, indem er eine Framesynchronisierung plant, aber nicht die angezeigte Oberfläche ändert. Dieses Kennzeichen ist nur im Vollbildmodus oder bei Verwendung von D3DSWAPEFFECT_FLIPEX im Fenstermodus verfügbar.
- Wenn dwFlags = D3DPRESENT_DONOTWAIT und die Hardware ausgelastet ist oder auf ein vertikales Synchronisierungsintervall wartet, gibt die Methode D3DERR_WASSTILLDRAWING zurück.
- Wenn dwFlags = D3DPRESENT_FORCEIMMEDIATE, wird D3DPRESENT_INTERVAL_IMMEDIATE für diesen Present-Aufruf erzwungen. Dieses Kennzeichen kann nur bei Verwendung von D3DSWAPEFFECT_FLIPEX angegeben werden. Dieses Verhalten ist für Fenster- und Vollbildmodi identisch.
- Wenn dwFlags = D3DPRESENT_LINEAR_CONTENT, wird die Gammakorrektur von linearer Fläche auf sRGB für Fenster-Swapchains durchgeführt. Dieses Kennzeichen wird nur wirksam, wenn der Treiber D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION verfügbar macht (siehe Gamma (Direct3D 9)).
Rückgabewert
Typ: HRESULT
Mögliche Rückgabewerte sind: S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED oder D3DERR_OUTOFVIDEOMEMORY (siehe D3DERR) oder S_PRESENT_OCCLUDED oder S_PRESENT_MODE_CHANGED (siehe S_PRESENT). Weitere Informationen zu verlorenen, hängen und entfernten Geräten finden Sie unter "Änderungen am Verhalten verlorener Geräte ".
|
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: D3DSWAPEFFECT_FLIPEX ist nur in Direct3D9Ex verfügbar, das unter Windows 7 (oder einem aktuelleren Betriebssystem) ausgeführt wird. |
Bemerkungen
Ähnlich wie die IDirect3DDevice9::P resent-Methode fügt PresentEx einen dwflags-Parameter hinzu.
Wenn die Swapchain mit D3DSWAPEFFECT_FLIPEX Flag erstellt wird, müssen pSourceRect-, pDestRect - und pDirtyRegion-Werte auf NULL festgelegt werden.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Fenster |
| Header | d3d9.h |
| Library | D3D9.lib |