IDXGIOutputDuplication-Schnittstelle (dxgi1_2.h)
Die IDXGIOutputDuplication-Schnittstelle greift auf das duplizierte Desktopimage zu und bearbeitet es.
Vererbung
Die IDXGIOutputDuplication-Schnittstelle erbt von IDXGIObject. IDXGIOutputDuplication verfügt auch über folgende Membertypen:
Methoden
Die IDXGIOutputDuplication-Schnittstelle verfügt über diese Methoden.
IDXGIOutputDuplication::AcquireNextFrame Gibt an, dass die Anwendung bereit ist, das nächste Desktopimage zu verarbeiten. |
IDXGIOutputDuplication::GetDesc Ruft eine Beschreibung einer duplizierten Ausgabe ab. Diese Beschreibung gibt die Abmessungen der Oberfläche an, die das Desktopbild enthält. |
IDXGIOutputDuplication::GetFrameDirtyRects Ruft Informationen zu modifiziert Rechtecke für den aktuellen Desktopframe ab. |
IDXGIOutputDuplication::GetFrameMoveRects Ruft Informationen zu den verschobenen Rechtecken für den aktuellen Desktopframe ab. |
IDXGIOutputDuplication::GetFramePointerShape Ruft Informationen zur neuen Zeigerform für den aktuellen Desktopframe ab. |
IDXGIOutputDuplication::MapDesktopSurface Stellt der CPU effizienten Zugriff auf ein Desktopimage bereit, wenn sich dieses Desktopimage bereits im Systemspeicher befindet. |
IDXGIOutputDuplication::ReleaseFrame Gibt an, dass die Anwendung die Verarbeitung des Frames abgeschlossen hat. |
IDXGIOutputDuplication::UnMapDesktopSurface Ungültigiert den Zeiger auf das Desktopimage, das mithilfe von IDXGIOutputDuplication::MapDesktopSurface abgerufen wurde. |
Hinweise
Eine Zusammenarbeitsanwendung kann IDXGIOutputDuplication verwenden, um auf das Desktopimage zuzugreifen. IDXGIOutputDuplication wird in Desktop Window Manager (DWM) für Nicht-8bpp-DirectX-Vollbildmodi und OpenGL-Vollbildmodi ohne 8bpp unterstützt. 16-Bit- oder 32-Bit-GDI-Nicht-DWM-Desktopmodi werden nicht unterstützt.
Eine Anwendung kann IDXGIOutputDuplication in einem separaten Thread verwenden, um die Desktopbilder zu empfangen und sie in ihre spezifische Bildverarbeitungspipeline einzuspeisen. Die Anwendung verwendet IDXGIOutputDuplication , um die folgenden Vorgänge auszuführen:
- Rufen Sie das nächste Desktopimage ab.
- Rufen Sie die Informationen ab, die das Bild beschreiben.
- Führen Sie einen Vorgang für das Image aus. Dieser Vorgang kann so einfach sein, wie das Kopieren des Bilds in einen Stagingpuffer, damit die Anwendung die Pixeldaten auf dem Bild lesen kann. Die Anwendung liest die Pixeldaten, nachdem die Anwendung IDXGISurface::Map aufgerufen hat. Alternativ kann dieser Vorgang komplexer sein. Beispielsweise kann die Anwendung einige Pixelshader für die aktualisierten Bereiche des Bilds ausführen, um diese Regionen für die Übertragung an einen Client zu codieren.
- Nachdem die Anwendung die Verarbeitung der einzelnen Desktopimages abgeschlossen hat, gibt sie das Image frei, führt eine Schleife zu Schritt 1 durch und wiederholt die Schritte. Die Anwendung wiederholt diese Schritte, bis die Verarbeitung von Desktopimages abgeschlossen ist.
- DwM durch Komponieren des Desktopimages
- Eine DirectX- oder OpenGL-Anwendung im Vollbildmodus
- Eine Anwendung durch Wechseln zu einem separaten Desktop, z. B. dem sicheren Desktop, der zum Anzeigen des Anmeldebildschirms verwendet wird
Beispiele für Situationen, in denen IDXGIOutputDuplication ungültig wird, sind:
- Desktopswitch
- Modusänderung
- Wechseln von DWM ein, DWM aus oder einer anderen Vollbildanwendung
Während die Anwendung jedes Desktopimage verarbeitet, sammelt das Betriebssystem alle Desktopimageupdates in einem einzelnen Update. Weitere Informationen zu Desktopupdates finden Sie unter Aktualisieren der Desktopimagedaten.
Das Desktopbild hat immer das format DXGI_FORMAT_B8G8R8A8_UNORM .
Die IDXGIOutputDuplication-Schnittstelle ist für Windows Store-Apps nicht vorhanden.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | dxgi1_2.h |