Informationen zu Direct2D

In diesem Thema wird Direct2D vorgestellt, eine API, die Win32-Entwicklern die Möglichkeit bietet, 2D-Grafikrenderingaufgaben mit überlegener Leistung und visueller Qualität auszuführen.

Was ist Direct2D?

Direct2D ist eine hardwarebeschleunigte 2D-Grafik-API im unmittelbaren Modus, die eine hohe Leistung und hochwertiges Rendering für 2D-Geometrie, Bitmaps und Text bietet. Die Direct2D-API ist für die Zusammenarbeit mit vorhandenem Code konzipiert, der GDI, GDI+ oder Direct3D verwendet.

Direct2D ist in erster Linie für die Verwendung durch die folgenden Klassen von Entwicklern konzipiert:

  • Entwickler großer, nativer Anwendungen auf Unternehmensebene.
  • Entwickler, die Steuerungs-Toolkits und Bibliotheken für nachgeschaltete Entwickler erstellen.
  • Entwickler, die serverseitiges Rendering von 2D-Grafiken benötigen.
  • Entwickler, die Direct3D-Grafiken verwenden und ein einfaches, leistungsstarkes 2D- und Textrendering für Menüs, Benutzeroberflächenelemente (UI) und Heads-up Displays (HUDs) benötigen.

Gründe für Direct2D

Zu den Hauptmotiven für die Erstellung einer neuen 2D-Grafik-API in Microsoft Windows gehören die folgenden:

  • Um mit dem zunehmenden Visuellen Reichtum Schritt zu halten, den Windows-Benutzer gewohnt sind.
  • Damit Entwickler 2D-Renderingcode schreiben können, der direkt mit der Grafikverarbeitungshardware des PCs skaliert wird, auf dem er ausgeführt wird.
  • So können Entwickler Code zum Rendern von 2D-Grafiken schreiben, die im Kontext eines Diensts ausgeführt werden können.

In den letzten Jahren haben Endbenutzer begonnen, eine höhere Visuelle Genauigkeit bei digitalen Erfahrungen zu erwarten. Dieser Trend spiegelt sich in der Unterhaltungselektronik wider. GPS-Geräte, Medienwiedergabegeräte, Mobiltelefone und Digitalkameras bieten Jahr für Jahr konstant umfangreichere Erfahrungen. Dieser Trend zeigt sich auch in der Vielfalt grafischer Inhalte in Film, Fernsehen, Videospielen und im Web. Um mit diesen Änderungen Schritt zu halten, werden Entwickler ständig aufgefordert, ihre vorhandenen Windows-Anwendungen auf die nächste Ebene der visuellen Vielfalt zu bringen.

Grafikprozessoren auf modernen Windows-PCs haben sich ebenfalls stetig weiterentwickelt, angetrieben von Fortschritten in der Videospielgrafik und Teilen der Windows-Erfahrung wie Windows Media Center und Aero. Einige Windows-Anwendungen können moderne GPUs mithilfe von Microsoft Direct3D und Windows Presentation Foundation (WPF) nutzen. Während Direct3D High-End-3D-Grafikanwendungen bereitstellt und WPF die Anforderungen von .NET-Entwicklern erfüllt, gibt es Lücken für Entwickler, die über große vorhandene Codebasen für Renderingcode verfügen, die auf GDI und GDI+ basieren, oder die hochwertige 2D-Grafiken in ihre Direct3D-basierten Anwendungen integrieren möchten.

Schließlich ist die Notwendigkeit einer Grafik-API, die in einem Dienst verwendet werden kann, zu einer neuen Anforderung für Entwickler geworden, die in Unternehmens- und Webentwicklungsszenarien arbeiten. Vorhandene Rendering-APIs konzentrieren sich auf das clientseitige Rendering in einer einzelnen Benutzersitzung. Daher können sie in Bereichen der Stabilität und Skalierbarkeit bei verwendung in einem Dienstkontext zu kurz kommen. Eine neue API ist erforderlich, um dies zu beheben.

Hohe Leistung bei maximaler Verfügbarkeit

Direct2D ist eine Benutzermodusbibliothek, die mit der Direct3D 10.1-API erstellt wird. Dies bedeutet, dass Direct2D-Anwendungen vom hardwarebeschleunigten Rendering auf modernen Standard-GPUs profitieren. Die Hardwarebeschleunigung wird auch auf früherer Direct3D 9-Hardware mithilfe von Direct3D 10-Level-9-Rendering erreicht. Diese Kombination bietet eine hervorragende Leistung auf Grafikhardware auf vorhandenen Windows-PCs.

Hinweis

Ab Windows 8 wird Direct2D mithilfe der Direct3D 11.1-API erstellt.

 

Das folgende Diagramm zeigt die mehrschichtige Architektur von Direct2D.

Diagramm der direct2d-Mehrschichtarchitektur

Für Szenarien, in denen die Verwendung der Hardwarebeschleunigung nicht möglich ist, enthält Direct2D einen leistungsstarken Softwarerasterizer. Beim Rendern in Software erzielen Anwendungen, die Direct2D verwenden, eine wesentlich bessere Renderingleistung als mit GDI+ und mit ähnlicher visueller Qualität. Der Softwarerasterizer ist auch für die Verwendung in einem Dienstkontext konzipiert.

Inhalte, die mithilfe von Direct2D gerendert werden, können auch remote mithilfe der RDP-Infrastruktur (Remotedesktopprotokoll) im Windows 7-Betriebssystem angezeigt werden. Entwickler können auswählen, ob das Rendering von der GPU auf dem Anzeigecomputer verarbeitet oder lokal gerendert und als Bitmaps übertragen wird. Diese Auswahl kann basierend auf der erforderlichen Füllrate und der Menge der Grafikgrundtypen getroffen werden, die gerendert werden. Wenn auf dem Anzeigecomputer ein Früheres Betriebssystem als Windows 7 ausgeführt wird, erfolgt das Remoteanzeigerendering durch Übertragung von Bitmaps über das Netzwerk.

Durch die Bereitstellung einer einzelnen API, die die Leistung von Direct3D und Hochverfügbarkeit kombiniert, indem Softwarefallback, Remotedesktop und Dienstrendering bereitgestellt werden, ermöglicht Direct2D Entwicklern eine einzelne Implementierung für hochleistungsfähiges Rendering in vielen verschiedenen Szenarien.

Visuelle Qualität

Anwendungen, die Direct2D für Grafiken verwenden, können eine höhere visuelle Qualität bieten als die, die mit GDI erreicht werden kann. Direct2D verwendet pro primitives Antialiasing, um glattere Kurven und Linien in gerenderten Inhalten zu liefern. Es gibt auch vollständige Unterstützung für Transparenz und Alphamischung beim Rendern von 2D-Grundtypen. In den folgenden Bildern werden mit GDI (links) gerenderte Aliasinhalte mit antialiasierten Inhalten verglichen, die von Direct2D (rechts) gerendert werden.

Abbildung von Kurven und Linien, die in gdi und in direct2d gerendert werden

Entwickler können das Aliasrendering von Vektorgrafiken angeben. Dies wird in Szenarien verwendet, in denen das Andocken an harten Pixelgrenzen erforderlich ist, z. B. UI-Elemente wie Zeiger oder Lineale, wenn die GDI-Formatvorlage der Ausgabe übereinstimmen muss oder wenn antialiasing im Renderingprozess über Multisample Antialiasing oder einen anderen Mechanismus nachgeschaltet wird.

Interoperabilität

Die Integration von Direct2D-basiertem Rendering wird entwicklern durch die Interoperabilität auf Oberflächenebene mit GDI und Direct3D erleichtert. Anwendungen, die Inhalte hauptsächlich mit GDI, GDI+ oder Direct3D rendern, können mit Direct2D beginnen, um bestimmte Bereiche ihrer Anwendung zu rendern, und im Laufe der Zeit zu einem Modell wechseln, bei dem das Rendering hauptsächlich über Direct2D erfolgt, wobei GDI hauptsächlich für Plug-Ins oder legacy-Erweiterbarkeit verwendet wird.

Direct2D erleichtert außerdem die Verwendung DirectWrite für qualitativ hochwertigen Text und die erweiterten Bilderstellungsfeatures der Microsoft Windows Imaging Component (WIC).

Weitere Informationen zur Direct2D-Interoperabilität finden Sie im Abschnitt Interoperabilität des Direct2D SDK.

Zusammenfassung

Microsoft Direct2D ermöglicht Es Entwicklern, 2D-Grafikfeatures in ihren Anwendungen zu erstellen, die gegenüber GDI verbesserte visuelle Qualität und Leistungsmerkmale bieten, die mit modernen GPUs skaliert werden. Das Direct2D-Interoperabilitätsmodell ermöglicht Entwicklern die selektive Migration von Teilen ihrer Anwendung gleichzeitig zusammen mit GDI, GDI+ oder Direct3D-basiertem Rendering.

Direct2D-Schnellstart für Windows 8

Übersicht über die Direct2D-API