Neuerungen in DirectWrite

In diesem Thema wird beschrieben, was in DirectWrite für verschiedene Versionen von Windows 10 neu ist.

Windows-App-SDK

Das Windows App SDK führt eine neue Version von DirectWrite ein, die als DWriteCore bezeichnet wird. Weitere Details finden Sie in der Übersicht über DWriteCore.

Windows 10-Update von Mai 2019

Für Windows 10, Version 1903 (10.0; Build 18362) – auch bekannt als Windows 10 Mai 2019 Update – wurden keine Features oder APIs hinzugefügt oder aktualisiert.

Windows 10 October 2018 Update

Die folgenden Features und APIs wurden für Windows 10, Version 1809 (10.0; Build 17763) – auch bekannt als Windows 10 Oktober 2018 Update – hinzugefügt oder aktualisiert.

Neue

Windows 10-Update vom April 2018

Die folgenden Features und APIs wurden für Windows 10, Version 1803 (10.0; Build 17134) – auch bekannt als Windows 10 April 2018 Update – hinzugefügt oder aktualisiert.

Neue

Windows 10 Fall Creators Update

Die folgenden Features und APIs wurden für Windows 10, Version 1709 (10.0; Build 16299) – auch bekannt als Windows 10 Fall Creators Update – hinzugefügt oder aktualisiert.

Neue

Verschoben

Die DWRITE_GLYPH_IMAGE_FORMATS-Aufzählung wurde von dwrite_3.h zu dcommon.h verschoben.

Windows 10 Creators Update

Die folgenden Features und APIs wurden für Windows 10, Version 1703 (10.0; Build 15063) auch bekannt als Windows 10 Creators Update – hinzugefügt oder aktualisiert.

Erweiterte API-Unterstützung für Cloud-Schriftarten und benutzerdefinierte Schriftartensätze

Windows 10 enthielt APIs, mit denen Apps auf einfache Weise auf Schriftarten von einem Windows-Schriftartdienst zugreifen können. Im Windows 10 Creators Update werden APIs für Remoteschriftarten erweitert, um einfachen Zugriff auf Schriftarten aus anderen Quellen im Web zu ermöglichen, auf die über HTTP oder HTTPS zugegriffen werden kann. 

Die neuen Remoteschriftarten-APIs können mit öffentlichen oder privaten Webdiensten verwendet werden. Darüber hinaus können sie für den Zugriff auf unformatierte OpenType-Schriftartdateien (TTF, OTF, TTC, OTC) oder Schriftarten verwendet werden, die in WOFF- oder WOFF2-Containerformaten verpackt sind. Die neuen APIs werden in Verbindung mit vorhandenen APIs zum Queuing von Anforderungen zum Herunterladen von Remoteschriftartendaten und zur Abwicklung des tatsächlichen Downloadprozesses verwendet.

Andere neue APIs erleichtern Apps das Arbeiten mit benutzerdefinierten Schriftarten, die im lokalen Dateisystem gespeichert sind oder in einen Speicherpuffer geladen werden.

Weitere Informationen zu neuen APIs zum Arbeiten mit Remoteschriftarten, benutzerdefinierten Schriftartensätzen oder WOFF/WOFF2-Containerformaten finden Sie im folgenden Thema:

Benutzerdefinierte Schriftartenkombinationen

Siehe auch die Links zu API-Referenzthemen in diesem Thema.  Die Verwendung neuer und vorhandener APIs zum Arbeiten mit benutzerdefinierten Schriftarten wird auch im Beispiel für benutzerdefinierte DirectWrite-Schriftartensätze veranschaulicht. In diesem Beispiel wird die Codeimplementierung für mehrere verschiedene Szenarien veranschaulicht, einschließlich lokaler Schriftarten auf Datenträgern, Remoteschriftarten im Web, In-Memory-Schriftartdaten und Schriftarten in gepackten WOFF- oder WOFF2-Formaten.

Anfängliche Unterstützung für OpenType-Schriftartvariationen

Version 1.8 der OpenType-Schriftformatspezifikation führte eine aufregende neue Erweiterung für das Format namens OpenType Font Variations ein. DirectWrite wurde im Windows 10 Creators Update aktualisiert, um benannte Instanzen von Variablenschriftarten zu unterstützen. Weitere Informationen finden Sie in den folgenden Themen:

OpenType-Variablenschriftarten

Windows 10 Anniversary Update

Die folgenden Features und APIs wurden für Windows 10, Version 1607 (10.0; Build 14393) – auch bekannt als Windows 10 Anniversary Update – hinzugefügt oder aktualisiert.

Verbesserte Unterstützung für farbige Schriftarten

Ab Windows 10 Anniversary Update bietet DirectWrite integrierte Unterstützung für eine breitere Palette von Farbschriftartenformaten, sodass Entwickler mehr Schriftarttypen in ihren DirectWrite-basierten Apps verwenden können als je zuvor. Unter anderem werden folgende Elemente unterstützt:

  • Die OpenType-Tabelle vom Typ „COLR“, die kompakten Vektorinhalt in Schriftarten ermöglicht. (Unterstützt seit Windows 8.1.)
  • Die OpenType-Tabelle vom Typ „SVG“, die SVG-Inhalte in Schriftarten ermöglicht.
  • Die OpenType-Tabelle vom Typ „CBDT“. Infolge dieser Unterstützung werden farbige Bitmapinhalte in Schriftarten unterstützt.
  • Die OpenType-Tabelle vom Typ „sbix“. Dadurch werden farbige Bitmapinhalte in Schriftarten ermöglicht.

Direct2D, das DirectWrite für das Textrendering verwendet, unterstützt diese Schriftformate automatisch, wenn das D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT-Flag aktiviert ist. Weitere Informationen finden Sie in den folgenden Themen:

Unterstützung für Adobe Typekit und andere Schriftartdienstclients

Einige Schriftartdienste, z. B. Adobe Typekit, verfügen über clientseitige Hilfsprogramme, mit denen ein Benutzer Schriftarten aus dem Dienst laden und in verschiedenen Anwendungen auf seinem Windows-Computer verwenden kann. Diese Dienstprogramme funktionieren in der Regel, indem Laufzeitaufrufe an GDI ausgeführt werden, um zusätzliche Schriftarten zu laden, anstatt Schriftarten dauerhaft auf dem System zu installieren. Aufgrund dieses Designs konnten die Schriftarten in früheren Windows-Versionen in GDI-basierten Anwendungen, aber nicht in DirectWrite-Anwendungen verwendet werden. Ab dem Windows 10 Anniversary Update stehen Schriftarten, die von solchen Dienstprogrammen geladen werden, auch in DirectWrite sowie in GDI zur Verfügung.

Schriftarten, die von einem Hilfsprogramm für Schriftarten geladen werden, sind in der Systemschriftartsammlung sichtbar, die durch Aufrufen der IDWriteFactory::GetSystemFontCollection-Methode abgerufen wird. Da Schriftartendienste in der Regel einem Pro-Benutzer-Lizenzmodell folgen, werden von diesen Hilfsprogrammen geladene Schriftarten auf Benutzerbasis verwaltet. Daher können vorhandene DirectWrite-Anwendungen Schriftarten verwenden, die Endbenutzer mit solchen Diensten erhalten haben, ohne dass Codeänderungen in der Anwendung erforderlich sind, was eine nahtlosere Benutzererfahrung bietet.

Unterstützung für OpenType-Sammlungen mit CFF-Konturen

Die Schriftartformate OpenType und TrueType haben schon lange die Möglichkeit unterstützt, mehrere Schriftarten in einer einzigen Schriftartdatei zusammenzupacken, die als „Schriftartsammlung“ bezeichnet wird. Die OpenType-Spezifikation erlaubt Schriftarten schon immer die Verwendung von TrueType- oder CFF-Formaten für Glyphenkonturdaten. Bis vor Kurzem erlaubte die Spezifikation jedoch nur Sammlungen, in denen Glyphenkonturen das TrueType-Format verwenden. Mit OpenType-Version 1.7 können Sammlungen jetzt TrueType- oder CFF-Formate für Glyphenkonturdaten verwenden. Ab dem Windows 10 Anniversary Update unterstützt DirectWrite OpenType-Sammlungen mit CFF-Konturdaten.

Windows 10

Integration des Windows-Schriftartdiensts

Ab Windows 10 sind Schriftarten, die in Windows enthalten sind, in einem Onlinedienst verfügbar und über DirectWrite auf jedem Windows 10-Gerät zugänglich. Dies gilt für alle Windows 10-Editionen. Auf diese Weise können Anwendungen Inhalte mit einer beliebigen Windows-Schriftart anzeigen, auch wenn die Schriftart derzeit nicht auf dem Gerät installiert ist.

Die Unterstützung der DirectWrite-Schriftartdienstmechanismen wurde im XAML-Framework implementiert, was bedeutet, dass alle Anwendungen, die XAML verwenden, keine Codeänderungen erfordern, um den Schriftartdienst nutzen zu können. Im Codebeispiel für herunterladbare Schriftarten (XAML) wird dies veranschaulicht. Anwendungen, die DirectWrite-APIs direkt aufrufen, müssen neue APIs verwenden, um die Schriftartdienstmechanismen zu verwenden. Weitere Informationen finden Sie in den folgenden Themen:

Das Codebeispiel für herunterladbare Schriftarten (DirectWrite) veranschaulicht die Verwendung mehrerer der neuen APIs.

Schriftartsatz-APIs

Die Schriftartensammlungsschnittstellen von DirectWrite bieten eine Ansicht für eine Sammlung von Schriftarten, die nach Schriftartenfamilien organisiert sind, wobei Schriftschnitt, Laufweite und Stil als Unterfamilienattribute verwendet werden. Intern implementiert DirectWrite die Schriftartsammlungsschnittstelle mithilfe einer flachen Liste von Schriftarten mit verschiedenen Attributen. Dieser Ansatz ist flexibler, da die Aufzählung von Schnitt-/Laufweiten-/Stilfamilien unterstützt werden kann, aber auch Abfragen und Filtern mit anderen Schriftartattributen.

In Windows 10 wird dieser flexiblere Mechanismus zur Handhabung von Schriftarten Anwendungen über die IDWriteFontSet- und zugehörige APIs zur Verfügung gestellt. Die Schriftartsatz-APIs können beispielsweise verwendet werden, um eine benutzerdefinierte Schriftartauswahl-Benutzeroberfläche zu erstellen, die anwendungsspezifische Schriftarteigenschaften in einem benutzerdefinierten Schriftartsatz nutzt.

Weitere Informationen finden Sie in den folgenden Themen:

Neue Textlayout-Zeilenabstandsmodi

Die Textformat- und Textlayoutschnittstellen von DirectWrite unterstützen neue Zeilenabstandsmodi. In früheren Versionen ist die Implementierung des Textlayouts von DirectWrite für den Zeilenabstand zulässig, in dem die Höhe jeder Zeile automatisch basierend auf dem höchsten Element in einer Zeile (der „Standard“-Modus) oder Zeilenabstand mit allen Zeilen auf eine einheitliche Höhe festgelegt wurde, die von der Anwendung bestimmt wird (der „Uniform“-Modus). In Windows 10 wird ein zusätzlicher „proportionaler“ Zeilenabstandsmodus unterstützt, der Anwendungen weitere Optionen für das Verhalten des Zeilenabstands bietet. Weitere Informationen finden Sie in den folgenden Themen:

Das Codebeispiel „Zeilenabstand (DirectWrite)“ veranschaulicht die Verwendung mehrerer der neuen APIs und stellt außerdem eine Visualisierung aller verschiedenen Zeilenabstandsmodi bereit, mit der die verschiedenen verfügbaren Zeilenabstandsoptionen wesentlich einfacher zu verstehen sind.

GDI-Interoperabilität

Seit der Einführung in Windows 7 hat DirectWrite einen Migrationspfad für Anwendungen bereitgestellt, die ursprünglich mithilfe des Schriftartmodells, des Textlayouts und des Renderings von GDI implementiert wurden. Dies wurde über die [[IDWriteGdiInterop]]-Schnittstelle bereitgestellt. In Windows 10 bieten zusätzliche APIs zusätzliche GDI-Interoperabilitätsfunktionen. Weitere Informationen hierzu finden Sie im folgenden Thema:

Windows 8.1

Rendern von Farbschriftarten

Ab Windows 8.1 bietet DirectWrite Unterstützung für Farbschriftarten. Direct2D, das DirectWrite für das Textrendering verwendet, hat den Aufzählungswert D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT hinzugefügt, um dieses Feature beim Zeichnen von Text zu aktivieren. Weitere Informationen finden Sie in den folgenden Themen:

Windows 8

Eine neue Factoryschnittstelle, IDWriteFactory1, zum Erstellen zusätzlicher Schnittstellen, die verfügbar sind.

Zusätzliche Schriftarteigenschaften, z. B. Hoch-/Tiefgestellt, Caretneigung, PANOSE und Unicode-Bereiche.

Verbesserungen beim Abstand, z. B. Steuern des Zeichenabstands, ältere Kerningpaare und Ausrichtung. Weitere Informationen finden Sie im Thema Ausrichtung, Kerning und Abstand.

Verbesserte Renderziele und -parameter.

Verbesserungen bei der Textkomplexitätsanalyse.

Neue Skripteigenschaften, neue Skriptunterstützung (Unicode 6), Fallbackergänzungen für Schriftarten, gekoppelte Klammern und Bidi-Augmentation.

Verbesserungen der Leistung des Schriftartcaches. Ab Windows 8 ist der Schriftartcache global und wird gestartet, wenn der Computer hochgefahren wird.

Neue Renderingmodi.

Ab Windows 8 unterstützt DirectWrite eine Reihe von Features, mit denen Sie Apps für den Weltmarkt erstellen können.

Hier sind mehrere Bereiche, die Ihnen bei der Implementierung von Rich-Text-Apps helfen, die auf Kunden auf der ganzen Welt zugeschnitten werden können.

Chinesische, japanische und koreanische Erweiterungen C & D

Alle paar Jahre veröffentlicht das Unicode Consortium eine standardisierte Liste der Ergänzungen zum Unified Ideograph-Block für Chinesisch, Japanisch und Koreanisch. Mit der Unicode 6.0-Revision hat es Erweiterungsblöcke C und D veröffentlicht. Diese Ideographenblöcke finden Sie auf der Unicode-Website Erweiterung C und Erweiterung D.

Ab Windows 8 unterstützt DirectWrite die Unicode-Codepoints für diese neuen Blöcke standardisierter CJK-Ideographen, sodass Sie sie in DirectWrite-Apps verwenden können.

Indisches Rupiensymbol

Im März 2005 kündigte die indische Regierung einen Wettbewerb an, um ein Symbol für die indische Rupienwährung auszuwählen. Nach viel Wettbewerb wählte die indische Regierung am 15. Juli 2010 das von D. Udaya Kumar erstellte Design aus, und DirectWrite enthält Unterstützung für den Unicode-Codepoint, der an das Symbol gebunden ist. DirectWrite-Apps unterstützen jetzt also dieses Währungssymbol.

Emoji

DirectWrite unterstützt jetzt die Verwendung von Emojis in Apps. In früheren Versionen von DirectWrite wurde ein fehlendes Glyphenfeld angezeigt, wenn Sie versucht haben, einen Emoji-Ideograph zu rendern. Ab Windows 8 unterstützt DirectWrite den Unicode-Codeblock, der Emoji zugeordnet ist. Wenn Ihre App also die Unicode-Standardcodepoints für Emojis verwendet, werden die entsprechenden Glyphen angezeigt.

Sprachen Myanmar, Tiffinagh und Altkoreanisch

Ab Windows 8 unterstützt DirectWrite den Block von Unicode-Codepoints, die den Glyphen in den Sprachen Myanmar, Tiffinagh und Altkoreanisch entsprechen, sodass Sie Apps erstellen können, die Text aus diesen drei Sprachen enthalten. Zusätzlich zur Unterstützung dieser Zeichen unterstützt DirectWrite die einzigartige Art und Weise, auf die Altkoreanisch Zeilenumbrüche handhabt.

Neue Skripts

Ab Windows 8 gibt die GetScriptProperties-Methode Informationen für eine Reihe neuer Skripts zurück. Hier ist die Liste der Skripts, die DirectWrite in Windows 8 und danach unterstützt.

  • Avestan
  • Bamum
  • Batak
  • Brahmi
  • Ägyptische Hieroglyphen
  • Reichsaramäisch
  • Inschriftliches Pahlavi
  • Inschriftliches Parthian
  • Javanisch
  • Kaithi
  • Lisu (Fraser)
  • Mandaisch
  • Meetei Mayek
  • Alt-Südarabisch
  • Alttürkisch (Orkhon)
  • Samaritanisch
  • Tai Tham (Lanna)
  • Tai Viet