Share via


Bewährte Methoden für DirectComposition

Hinweis

Für Apps auf Windows 10 wird die Verwendung von Windows.UI.Composition-APIs anstelle von DirectComposition empfohlen. Weitere Informationen finden Sie unter Modernisieren Ihrer Desktop-App mithilfe der visuellen Ebene.

In diesem Thema werden bewährte Methoden für die Verwendung von Microsoft DirectComposition beschrieben.

Bewährte Methoden

Die folgende Tabelle enthält die empfohlenen Methoden für die Arbeit mit Microsoft DirectComposition-Visuals.

Üben Beschreibung
Rufen Sie nach dem Erstellen eines DirectComposition-Geräts die IDCompositionDevice::CheckDeviceState-Methode als Antwort auf jede WM_PAINT Nachricht auf, um sicherzustellen, dass das Gerät weiterhin gültig ist.
Wenn das DXGI-Gerät (Microsoft DirectX Graphics Infrastructure) verloren geht, geht auch das dem DXGI-Gerät zugeordnete DirectComposition-Gerät verloren. Wenn ein verlorenes Gerät erkannt wird, sendet DirectComposition die WM_PAINT-Nachricht an alle Fenster. Wenn Sie CheckDeviceState als Antwort auf jede WM_PAINT Nachricht aufrufen, können Sie feststellen, ob das DirectComposition-Geräteobjekt noch gültig ist, und, falls nicht, Schritte zum Wiederherstellen von Inhalten ausführen.
Weitere Informationen finden Sie unter Geräteobjekt.
Erstellen Sie nur die Anzahl von Visuals, die für eine Komposition oder Animation erforderlich sind, und zerstören Sie die Visuals sofort, nachdem DirectComposition sie verwendet hat.
DirectComposition verwendet die Grafikverarbeitungseinheit (Graphics Processing Unit, GPU), eine Ressource, die Ihre Anwendung mit anderen Anwendungen und dem Betriebssystem teilt. Dadurch wird sichergestellt, dass alle Anwendungen und das Betriebssystem angemessene GPU-Ressourcen erhalten.
Weitere Informationen finden Sie unter Visuals.
Blenden Sie visuals nicht aus, indem Sie die Deckkraft auf 0 % festlegen. Entfernen Sie stattdessen Visuals aus der visuellen Struktur.
Das Festlegen der Deckkraft auf 0 % erfordert mehr Systemressourcen als das Entfernen aus der visuellen Struktur.
Weitere Informationen finden Sie unter Deckkraft und visuelle Struktur.
Blenden Sie ein Visual nicht aus, indem Sie ein leeres Cliprechteck (Nullgröße) auf ein Visual anwenden. Entfernen Sie stattdessen das Visual aus der visuellen Struktur.
Das Entfernen eines Visuals aus der visuellen Struktur führt zu einer besseren Leistung als das Anwenden eines leeren Cliprechtecks.
Weitere Informationen finden Sie unter Ausschneiden.
Wenden Sie kein Cliprechteck auf ein Visual an, wenn das Cliprechteck nicht benötigt wird, z. B. ein Cliprechteck, das den gesamten Bitmapinhalt des Visuals enthält.
Unnötige Cliprechtecke beeinträchtigen die Systemleistung.
Weitere Informationen finden Sie unter Ausschneiden.
Wenn Sie eine große, einfarbige Bitmap benötigen, erstellen Sie eine kleinere Bitmapoberfläche, und wenden Sie dann eine Skalierungstransformation an, anstatt eine fläche in voller Größe zu erstellen.
Das Anwenden einer Skalierungstransformation auf eine kleinere Oberfläche benötigt weniger Systemressourcen als eine oberfläche in voller Größe.
Weitere Informationen finden Sie unter Bitmapobjekte und Transformationen.
Vermeiden Sie das Anwenden von 3D-Transformationen auf mehrere Ebenen einer visuellen Struktur, z. B. auf ein übergeordnetes Element und seine untergeordneten Elemente.
Das Anwenden von 3D-Transformationen auf mehrere Ebenen einer visuellen Struktur kann unbeabsichtigte Ergebnisse erzeugen, da 3D-Transformationen in der Struktur nicht multipliziert werden. Eine Drehung um 90 Grad um die y-Achse auf einem untergeordneten Element und eine Drehung um 90 Grad um die y-Achse auf einem übergeordneten Element führen beispielsweise dazu, dass beide Visuals zu nichts weggedreht werden.
Weitere Informationen finden Sie unter Effekte.

Sicherheitshinweise

Die folgenden Artikel enthalten Anleitungen zum Schreiben von sicherem C++-Code.

Verwenden von DirectComposition