Nouveautés de DirectWrite

Cette rubrique décrit les nouveautés de DirectWrite pour différentes versions de Windows 10.

Kit de développement logiciel (SDK) pour application Windows

Le SDK d’application Windows introduit une nouvelle version de DirectWrite, appelée DWriteCore. Pour plus de détails, consultez Vue d’ensemble de DWriteCore.

Mise à jour de Windows 10 de mai 2019

Aucune fonctionnalité ou API n’a été ajoutée ni mise à jour pour Windows 10, version 1903 (10.0 ; Build 18362), également appelée Mise à jour de mai 2019 de Windows 10.

Windows 10 avec la mise à jour d’octobre 2018

Les fonctionnalités et API suivantes ont été ajoutées ou mises à jour pour Windows 10, version 1809 (10.0 ; Build 17763) : également appelé Mise à jour d’octobre 2018 de Windows 10.

Nouveau

Mise à jour d’avril 2018 de Windows 10

Les fonctionnalités et API suivantes ont été ajoutées ou mises à jour pour Windows 10, version 1803 (10.0 ; Build 17134) : également appelé Mise à jour d’avril 2018 de Windows 10.

Nouveau

Windows 10 Fall Creators Update

Les fonctionnalités et API suivantes ont été ajoutées ou mises à jour pour Windows 10, version 1709 (10.0 ; Build 16299) : également appelé Windows 10 Fall Creators Update.

Nouveau

Déplacé

L’énumération DWRITE_GLYPH_IMAGE_FORMATS a été déplacée de dwrite_3.h vers dcommon.h.

Windows 10 Creators Update

Les fonctionnalités et API suivantes ont été ajoutées ou mises à jour pour Windows 10, version 1703 (10.0 ; Build 15063) : également appelé Windows 10 Creators Update.

Prise en charge de l’API étendue pour les polices cloud et les jeux de polices personnalisés

Les API windows 10 incluses qui permettent aux applications d’accéder facilement aux polices à partir d’un service de police Windows. Dans le Windows 10 Creators Update, les API pour les polices distantes sont étendues pour permettre un accès facile aux polices à partir d’autres sources sur le Web accessibles à l’aide de HTTP ou HTTPS. 

Les nouvelles API de police distante peuvent être utilisées avec des services Web publics ou privés. En outre, ils peuvent être utilisés pour accéder aux fichiers de police raw, aux fichiers dont la police est OpenType (.ttf, .otf., .ttc, .otc) ou aux polices empaquetées dans des formats de conteneur WOFF ou WOFF2 . Les nouvelles API sont utilisées conjointement avec les API existantes pour mettre en file d’attente les demandes de téléchargement des données de police distantes et pour gérer le processus de téléchargement réel.

D’autres nouvelles API facilitent l’utilisation des applications avec des polices personnalisées stockées dans le système de fichiers local ou chargées dans une mémoire tampon.

Pour plus d’informations sur les nouvelles API pour utiliser des polices distantes, des ensembles de polices personnalisés ou des formats de conteneur WOFF/WOFF2, consultez la rubrique suivante :

Jeux de polices personnalisés

Consultez également les liens vers les rubriques de référence API fournies dans cette rubrique.  L’utilisation des API nouvelles et existantes pour utiliser des polices personnalisées est également illustrée dans l’échantillon DirectWrite Custom Font Sets. Cet échantillon illustre l’implémentation du code pour plusieurs scénarios différents, notamment les polices locales sur le disque, les polices distantes sur le web, les données de police en mémoire et les polices dans les formats WOFF ou WOFF2 empaqueté.

Prise en charge initiale des variations de police OpenType

La version 1.8 de la spécification du format de police OpenType a introduit une nouvelle extension passionnante au format appelé OpenType Font Variations. DirectWrite a été mis à jour dans le Windows 10 Creators Update pour prendre en charge les instances nommées de polices de variables. Pour plus d'informations, voir la rubrique suivante :

Polices de variable OpenType

Mise à jour anniversaire Windows 10

Les fonctionnalités et API suivantes ont été ajoutées ou mises à jour pour Windows 10, version 1607 (10.0 ; Build 14393) : également appelé Mise à jour anniversaire Windows 10.

Prise en charge améliorée des polices en couleur

À compter de la Mise à jour anniversaire Windows 10, DirectWrite fournit une prise en charge intégrée d’un plus grand nombre de formats de polices de couleur, ce qui permet aux développeurs d’utiliser plus de types de polices dans leurs applications directWrite que jamais. Cela inclut la prise en charge des éléments suivants :

  • Table OpenType « COLR », qui active le contenu vectoriel compact dans les polices. (Pris en charge depuis Windows 8.1.)
  • La table OpenType « SVG » qui permet d’utiliser du contenu SVG dans les polices.
  • La table OpenType « CBDT » qui permet d’utiliser du contenu bitmap en couleur dans les polices.
  • La table OpenType « sbix » qui permet d’utiliser du contenu bitmap en couleur dans les polices.

Direct2D, qui utilise DirectWrite pour le rendu de texte, prend automatiquement en charge ces formats de polices de couleur lorsque l’indicateur D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT est activé. Pour plus d’informations, voir les rubriques suivantes :

Prise en charge d’Adobe Typekit et d’autres clients de service de police

Certains services de police, tels qu’Adobe Typekit, ont des utilitaires côté client qui permettent à un utilisateur de charger des polices à partir du service et de les utiliser dans différentes applications sur leur ordinateur Windows. Ces utilitaires fonctionnent généralement en effectuant des appels au moment de l’exécution à GDI pour charger des polices supplémentaires, plutôt que d’installer définitivement des polices sur le système. En raison de cette conception, sur les versions antérieures de Windows, les polices seraient utilisables dans les applications basées sur GDI, mais pas dans les applications DirectWrite. À compter de la mise à jour anniversaire Windows 10, les polices chargées par ces utilitaires seront également disponibles dans DirectWrite et dans Graphics Device Interface (GDI).

Les polices chargées par un utilitaire de service de police sont visibles dans la collection de polices système obtenue en appelant la méthode IDWriteFactory:GetSystemFontCollection. Étant donné que les services de police suivent généralement un modèle de licence par utilisateur, les polices chargées par ces utilitaires sont gérées par utilisateur. Par conséquent, les applications DirectWrite existantes peuvent utiliser des polices obtenues par les utilisateurs finaux à l’aide de ces services, sans aucune modification de code requise dans l’application, ce qui offre une expérience plus transparente aux utilisateurs.

Prise en charge des collections OpenType à l’aide des plans CFF

Les formats de police OpenType et TrueType ont depuis longtemps pris en charge la possibilité pour plusieurs polices d’être empaquetées ensemble dans un fichier de police unique, appelé « collection de polices ». La spécification OpenType a toujours autorisé les polices à utiliser les formats TrueType ou CFF pour les données de plan de glyphe. Toutefois, jusqu’à récemment, la spécification n’a autorisé que les collections dans lesquelles les contours de glyphe utilisent le format TrueType. OpenType version 1.7 permet désormais aux collections d’utiliser des formats TrueType ou CFF pour les données de plan de glyphe. À compter de la mise à jour anniversaire Windows 10, DirectWrite prend en charge les collections OpenType à l’aide des données hiérarchiques CFF.

Windows 10

Intégration du service de police Windows

À compter de Windows 10, les polices incluses dans Windows sont disponibles dans un service en ligne et sont accessibles via DirectWrite sur n’importe quel appareil Windows 10. Cela s’applique à toutes les éditions de Windows 10. Cela permet aux applications d’afficher du contenu à l’aide de n’importe quelle police Windows même si la police n’est pas actuellement installée sur l’appareil.

La prise en charge des mécanismes de service de police DirectWrite a été implémentée dans l’infrastructure XAML, ce qui signifie que toutes les applications qui utilisent XAML ne nécessitent aucune modification de code pour tirer parti du service de police. L’échantillon de code de police logicielle (XAML) illustre cela. Les applications qui appellent directement les API DirectWrite devront utiliser de nouvelles API pour utiliser les mécanismes de service de police. Pour plus d’informations, voir les rubriques suivantes :

L’échantillon de code de police logicielle (DirectWrite) illustre l’utilisation de plusieurs nouvelles API.

API de jeu de polices

Les interfaces de collection de polices de DirectWrite fournissent une vue sur une collection de polices organisées par les familles de polices, à l’aide de l’épaisseur, de l’étirement et du style en tant qu’attributs de sous-famille. En interne, DirectWrite implémente l’interface de collection de polices à l’aide d’une liste plate de polices avec différents attributs. Cette approche est plus flexible, car elle peut prendre en charge l’énumération des familles de poids/stretch/style, mais peut également prendre en charge l’interrogation et le filtrage à l’aide d’autres attributs de police.

Dans Windows 10, ce mécanisme de gestion de police plus flexible est mis à la disposition des applications via IDWriteFontSet et les API associées. Les API de jeu de polices peuvent être utilisées, par exemple, pour créer une interface utilisateur de sélecteur de polices personnalisée à l’aide des propriétés de police personnalisées par l’application dans un jeu de polices personnalisé.

Pour plus d’informations, voir les rubriques suivantes :

Nouveaux modes d’espacement de ligne de disposition de texte

Le format de texte et les interfaces de disposition de texte de DirectWrite prennent en charge de nouveaux modes d’espacement de ligne. Dans les versions antérieures, l’implémentation de la mise en page du texte de DirectWrite permettait une interligne dans lequel la hauteur de chaque ligne était définie automatiquement en fonction de l’élément le plus haut dans une ligne (le mode « par défaut »), ou une interligne avec toutes les lignes définies à une hauteur uniforme déterminée par l’application (le mode « uniforme »). Dans Windows 10, un mode d’interligne « proportionnel » supplémentaire est pris en charge pour donner aux applications davantage d’options pour le comportement d’interligne. Pour plus d’informations, voir les rubriques suivantes :

L’échantillon de code d’interligne (DirectWrite) illustre l’utilisation de plusieurs nouvelles API et fournit également une visualisation de tous les différents modes d’espacement de ligne qui facilitent considérablement la compréhension des différentes options d’espacement de ligne disponibles.

Interopérabilité GDI

Depuis son introduction dans Windows 7, DirectWrite a fourni un chemin de migration pour les applications qui ont été initialement implémentées à l’aide du modèle de police, de la disposition de texte et du rendu de GDI. Cela a été fourni via l’interface [[IDWriteGdiInterop]]. Dans Windows 10, d’autres API fournissent des fonctionnalités GDI-interopérabilité supplémentaires. Pour plus d’informations, reportez-vous au sujet suivant :

Windows 8.1

Rendu des polices de couleur

À compter de Windows Windows 8.1, DirectWrite prend en charge les polices de couleur. Direct2D, qui utilise DirectWrite pour le rendu du texte, a ajouté la valeur d’énumération D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT pour activer cette fonctionnalité lors du dessin de texte. Pour plus d’informations, voir les rubriques suivantes :

Windows 8

Une nouvelle interface de fabrique, IDWriteFactory1, pour créer des interfaces supplémentaires disponibles.

Propriétés de police supplémentaires, telles que : super/indice, pente de caret, PANOSE et plages Unicode.

Améliorations de l’espacement, telles que : espacement des caractères de contrôle, paires de crénage héritées et justification. Pour plus d’informations, consultez la rubrique Justification, Kerning et Espacement.

Amélioration des cibles de rendu et des paramètres.

Améliorations apportées à l’analyse de la complexité du texte.

Nouvelles propriétés de script, prise en charge du nouveau script (Unicode 6), ajouts de secours de police, parenthèses jumelées et augmentation bidirectionnelle.

Améliorations du niveau de performance du cache de police. À compter de Windows 8, le cache de polices est global et démarre lorsque votre ordinateur démarre.

Nouveaux modes de rendu.

À compter de Windows 8, DirectWrite prend en charge un certain nombre de fonctionnalités qui vous aident à créer des applications pour le marché mondial.

Voici plusieurs domaines qui vous aident à implémenter des applications de texte enrichi qui peuvent être adaptées aux clients dans le monde entier.

Extensions chinoises, japonaises et coréennes C & D

Tous les deux ou trois ans, le Consortium Unicode publie une liste normalisée des ajouts au bloc d’idéogrammes unifiés du chinois, du japonais et du coréen. Avec la révision Unicode 6.0, ils ont publié des blocs d’extension C et D. Ces blocs d’idéogrammes sont disponibles sur l’extension C et l’extension D du site web Unicode.

À compter de Windows 8, DirectWrite prend en charge les points de code Unicode pour ces nouveaux blocs d’idéogrammes CJK standardisés, afin de pouvoir les utiliser dans les applications DirectWrite.

Symbole INR

En mars 2005, le gouvernement indien a annoncé un concours pour choisir un symbole pour la monnaie des roupies indiennes. Après beaucoup de concurrence, le 15 juillet 2010, le gouvernement indien a choisi la conception créée par D. Udaya Kumar, et DirectWrite inclut la prise en charge du point de code Unicode lié au symbole. Par conséquent, les applications DirectWrite prennent désormais en charge ce symbole monétaire.

Emoji

DirectWrite prend désormais en charge l’utilisation d’emojis dans les applications. Les versions précédentes de DirectWrite, présentées avec un glyphe manquant si vous avez essayé d’afficher un idéogramme emoji. À compter de Windows 8, DirectWrite prend en charge le bloc de code Unicode associé à l’emoji. Par conséquent, si votre application utilise les points de code standard Unicode pour les emojis, il affiche les glyphes appropriés.

Myanmar, Tiffinagh et vieux Hangûl

À compter de Windows 8, DirectWrite prend en charge le bloc de points de code Unicode qui correspondent aux glyphes du Myanmar, de Tiffinagh et des langues hangûl anciennes. Vous pouvez donc créer des applications qui incluent du texte à partir de ces trois langues. En plus de prendre en charge ces caractères, DirectWrite prend en charge la façon unique dont Old Hangul gère le saut de ligne.

Nouveaux scripts

À compter de Windows 8, la méthode GetScriptProperties retourne des informations pour un certain nombre de nouveaux scripts. Voici la liste des scripts pris en charge par DirectWrite dans Windows 8 et versions ultérieures.

  • Avestan
  • Bamum
  • Batak
  • Brahmi
  • Hiéroglyphes égyptiens
  • Aramaïque impérial
  • Inscriptional Pahlavi
  • Inscription Parthes
  • Javanais
  • Kaithi
  • Lisu (Fraser)
  • Mandaïque
  • Meetei Mayek
  • Vieux Sud Arabe
  • Ancien turc (Orkhon)
  • Samaritan
  • Tai Tham (Lanna)
  • Tai Viet