Novedades de DirectWrite

En este tema se describen las novedades de DirectWrite para varias versiones de Windows 10.

SDK para aplicaciones de Windows

El SDK de Aplicaciones para Windows presenta una nueva versión de DirectWrite, denominada DWriteCore. Para obtener más información, consulte Información general de DWriteCore.

Actualización de mayo de 2019 de Windows 10

No se agregaron ni actualizaron funciones ni API para Windows 10, versión 1903 (10.0; compilación 18362), también conocida como actualización de mayo de 2019 de Windows 10.

Actualización de octubre de 2018 de Windows 10

Las siguientes características y API se agregaron o actualizaron para Windows 10, versión 1809 (10.0; compilación 17763), también conocida como actualización de octubre de 2018 de Windows 10.

Nuevo

Actualización de abril de 2018 de Windows 10

Las siguientes características y API se agregaron o actualizaron para Windows 10, versión 1803 (10.0; compilación 17134), también conocida como actualización de abril de 2018 de Windows 10.

Nuevo

Windows 10 Fall Creators Update

Las siguientes características y API se agregaron o actualizaron para Windows 10, versión 1709 (10.0; compilación 16299), también conocida como Windows 10 Fall Creators Update.

Nuevo

Movido

La enumeración de DWRITE_GLYPH_IMAGE_FORMATS se movió de dwrite_3.h a dcommon.h.

Windows 10 Creators Update

Las siguientes características y API se agregaron o actualizaron para Windows 10, versión 1703 (10.0; compilación 15063), también conocida como Windows 10 Creators Update.

Compatibilidad de API expandida con fuentes en la nube y conjuntos de fuentes personalizados

Windows 10 incluía unas API que permiten a las aplicaciones acceder fácilmente a fuentes desde un servicio de fuentes de Windows. En Windows 10 Creators Update, las API para fuentes remotas se amplían para permitir un fácil acceso a fuentes de otras fuentes en la Web a las que se puede acceder mediante HTTP o HTTPS. 

Las nuevas API de fuentes remotas se pueden utilizar con servicios web públicos o privados. Además, se pueden usar para acceder a archivos de fuente sin procesar, OpenType (.ttf, .otf., .ttc, .otc) o fuentes empaquetadas en formatos de contenedor WOFF o WOFF2 . Las nuevas API se utilizan junto con las API existentes para poner en cola solicitudes para descargar datos de fuentes remotas y para manejar el proceso de descarga real.

Otras API nuevas facilitan que las aplicaciones trabajen con fuentes personalizadas que se almacenan en el sistema de archivos local o que se cargan en un búfer de memoria.

Para obtener más información sobre las nuevas API para trabajar con fuentes remotas, conjuntos de fuentes personalizados o formatos de contenedor WOFF/WOFF2, consulte el siguiente tema:

Conjuntos de fuentes personalizadas

Consulte también los enlaces a temas de referencia de API proporcionados en ese tema.  El uso de API nuevas y existentes para trabajar con fuentes personalizadas también se ilustra en el ejemplo de Conjuntos de fuentes personalizadas de DirectWrite. Este ejemplo ilustra la implementación de código para varios escenarios diferentes, incluidas fuentes locales en el disco, fuentes remotas en la Web, datos de fuentes en memoria y fuentes en formatos WOFF o WOFF2 empaquetados.

Compatibilidad inicial con las variaciones de fuente OpenType

La versión 1.8 de la especificación de formato de fuente OpenType introdujo una nueva e interesante extensión del formato conocida como variaciones de fuentes OpenType. DirectWrite se actualizó en Windows 10 Creators Update para admitir instancias con nombre de fuentes variables. Para obtener más información, consulte el siguiente tema:

Fuentes variables OpenType

Actualización de aniversario de Windows 10

Las siguientes características y API se agregaron o actualizaron para Windows 10, versión 1607 (10.0; compilación 14393), también conocida como Actualización de aniversario de Windows 10.

Compatibilidad mejorada para las fuentes de color

A partir de la Actualización de aniversario de Windows 10, DirectWrite proporciona soporte integrado para una variedad más amplia de formatos de fuentes de color, lo que permite a los desarrolladores utilizar más tipos de fuentes que nunca en sus aplicaciones con tecnología DirectWrite. Esto incluye la compatibilidad para:

  • La tabla OpenType "COLR", que permite contenido vectorial compacto en fuentes. (Compatible desde Windows 8.1).
  • La tabla OpenType "SVG", que habilita contenido SVG en fuentes.
  • La tabla OpenType "CBDT", que permite contenido de mapa de bits en color en las fuentes.
  • La tabla OpenType "sbix", que permite contenido de mapa de bits en color en las fuentes.

Direct2D, que usa DirectWrite para la representación de texto, admite estos formatos de fuente de color automáticamente cuando la marca de D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT está habilitada. Para obtener más información, consulte los temas siguientes:

Compatibilidad con Adobe Typekit y otros clientes de servicio de fuentes

Algunos servicios de fuentes, como Adobe Typekit, tienen utilidades del lado del cliente que permiten al usuario cargar fuentes desde el servicio y usarlas en diferentes aplicaciones en su máquina Windows. Estas utilidades normalmente funcionan realizando llamadas en tiempo de ejecución a GDI para cargar fuentes adicionales, en lugar de instalar fuentes permanentemente en el sistema. Debido a ese diseño, en versiones anteriores de Windows, las fuentes se podrían utilizar en aplicaciones basadas en GDI, pero no en aplicaciones DirectWrite. A partir de la Actualización de aniversario de Windows 10, las fuentes cargadas por dichas utilidades también estarán disponibles en DirectWrite y en GDI.

Las fuentes cargadas por una utilidad de servicio de fuentes son visibles en la colección de fuentes del sistema obtenida llamando al método IDWriteFactory::GetSystemFontCollection. Dado que los servicios de fuentes suelen seguir un modelo de licencia por usuario, las fuentes cargadas por estas utilidades se administran por usuario. Como resultado, las aplicaciones DirectWrite existentes pueden utilizar fuentes que los usuarios finales hayan obtenido utilizando dichos servicios, sin necesidad de cambios de código en la aplicación, lo que proporciona una experiencia más fluida para los usuarios.

Compatibilidad con colecciones OpenType mediante esquemas de CFF

Los formatos de fuentes OpenType y TrueType han admitido durante mucho tiempo la capacidad de empaquetar varias fuentes juntas en un único archivo de fuentes, conocido como “colección de fuentes”. La especificación OpenType siempre ha permitido que las fuentes utilicen formatos TrueType o CFF para datos de contorno de glifos. Sin embargo, hasta hace poco, la especificación sólo permitía colecciones en las que los contornos de glifos utilizaban el formato TrueType. La versión 1.7 de OpenType ahora permite que las colecciones usen formatos TrueType o CFF para datos de esquema de glifo. A partir de la actualización de aniversario de Windows 10, DirectWrite admitirá colecciones OpenType que utilicen datos de esquema CFF.

Windows 10

Integración del servicio de fuentes de Windows

A partir de Windows 10, las fuentes incluidas con Windows están disponibles en un servicio en línea y se puede acceder a ellas a través de DirectWrite en cualquier dispositivo con Windows 10. Esto se aplica a todas las ediciones de Windows 10. Esto permite que las aplicaciones muestren contenido usando cualquier fuente de Windows incluso si la fuente no está instalada actualmente en el dispositivo.

La compatibilidad con los mecanismos de servicio de fuentes DirectWrite se ha implementado en el marco XAML, lo que significa que cualquier aplicación que utilice XAML no requiere cambios de código para aprovechar el servicio de fuentes. El ejemplo de código de fuentes descargables (XAML) muestra esto. Las aplicaciones que llaman directamente a las API de DirectWrite necesitarán utilizar nuevas API para utilizar los mecanismos del servicio de fuentes. Para obtener más información, consulte los temas siguientes:

El ejemplo de código de fuentes descargables (DirectWrite) ilustra el uso de varias de las nuevas API.

API del conjunto de fuentes

Las interfaces de colección de fuentes de DirectWrite brindan una vista de una colección de fuentes organizada por familias de fuentes, utilizando el peso, la extensión y el estilo como atributos de subfamilia. Internamente, DirectWrite implementa la interfaz de colección de fuentes mediante una lista plana de fuentes con varios atributos. Este enfoque es más flexible porque puede admitir la enumeración de familias de peso/estiramiento/estilo, pero también puede admitir consultas y filtrado utilizando otros atributos de fuente.

En Windows 10, este mecanismo de manejo de fuentes más flexible está disponible para las aplicaciones a través de IDWriteFontSet y las API relacionadas. Las API de conjuntos de fuentes se pueden utilizar, por ejemplo, para crear una interfaz de usuario de selección de fuentes personalizada que aproveche las propiedades de fuentes personalizadas de la aplicación en un conjunto de fuentes personalizado.

Para obtener más información, consulte los temas siguientes:

Nuevos modos de interlineado de diseño de texto

Las interfaces de formato y diseño de texto de DirectWrite admiten nuevos modos de interlineado. En versiones anteriores, la implementación de diseño de texto de DirectWrite permitía un interlineado en el que la altura de cada línea se establecía automáticamente en función del elemento más alto dentro de una línea (el modo "predeterminado"), o un interlineado con todas las líneas establecidas en una altura uniforme determinada. por la aplicación (el modo “uniforme”). En Windows 10, se admite un modo de interlineado "proporcional" adicional que brinda a las aplicaciones más opciones para el comportamiento del interlineado. Para obtener más información, consulte los temas siguientes:

El ejemplo de código de interlineado (DirectWrite) ilustra el uso de varias de las nuevas API y también proporciona una visualización de todos los diferentes modos de interlineado que hace que sea mucho más fácil comprender las diversas opciones de interlineado disponibles.

Interoperabilidad de GDI

Desde su introducción en Windows 7, DirectWrite ha proporcionado una ruta de migración para aplicaciones que se implementaron originalmente utilizando el modelo de fuente, el diseño de texto y la representación de GDI. Esto se proporcionó a través de la interfaz [[IDWriteGdiInterop]]. En Windows 10, las API adicionales proporcionan capacidades adicionales de interoperabilidad GDI. Para obtener más información, consulte el tema siguiente:

Windows 8.1

Representación de las fuentes de color

A partir de Windows Windows 8.1, DirectWrite proporciona compatibilidad con fuentes de color. Direct2D, que usa DirectWrite para la representación de texto, ha agregado el valor de enumeración D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT para habilitar esta característica al dibujar texto. Para obtener más información, consulte los temas siguientes:

Windows 8

Una nueva interfaz de fábrica, IDWriteFactory1, para crear interfaces adicionales disponibles.

Propiedades de fuente adicionales, como: superíndice/subíndice, pendiente de intercalación, PANOSE y rangos Unicode.

Mejoras en el espaciado, como: control del espaciado entre caracteres, pares de interlineado heredados y justificación. Consulte el tema Justificación, interlineado y espaciado para obtener más información.

Objetivos y parámetros de representación mejorados.

Mejoras en el análisis de complejidad del texto.

Nuevas propiedades de script, nueva compatibilidad con scripts (Unicode 6), adiciones de reserva de fuentes, paréntesis emparejados y aumento de bidi.

Mejoras en el rendimiento de la caché de fuentes. A partir de Windows 8, la memoria caché de fuentes es global e inicia cuando se inicia el equipo.

Nuevos modos de representación.

A partir de Windows 8, DirectWrite admite una serie de características que te ayudan a crear aplicaciones para el mercado mundial.

Estas son varias áreas que le ayudan a implementar aplicaciones de texto enriquecido que se pueden adaptar a los clientes de todo el mundo.

Extensiones chinas, japonesas y coreanas C & D

Cada pocos años, el Consorcio Unicode publica una lista estandarizada de adiciones al bloque de ideógrafos unificados chino, japonés y coreano. Con la revisión Unicode 6.0, han publicado bloques de extensión C y D. Estos bloques de ideógrafos se pueden encontrar en el sitio web de Unicode Extensión C y Extensión D.

A partir de Windows 8, DirectWrite admite los puntos de código Unicode para estos nuevos bloques de ideógrafos CJK estandarizados, por lo que puede usarlos en aplicaciones DirectWrite.

Símbolo de rupia india

En marzo de 2005, el gobierno indio anunció un concurso para elegir un símbolo para la moneda rupia india. Después de mucho concurso, el 15 de julio de 2010, el gobierno indio eligió el diseño creado por D. Udaya Kumar y DirectWrite incluye compatibilidad con el punto de código Unicode vinculado al símbolo. Por lo tanto, las aplicaciones DirectWrite ahora admiten este símbolo de moneda.

Emoji

DirectWrite ahora admite el uso de emoji en aplicaciones. Versiones anteriores de DirectWrite, presentadas con un cuadro de glifo que faltaba si intentó representar un ideograma emoji. A partir de Windows 8, DirectWrite admite el bloque de código Unicode asociado con emoji, por lo que si su aplicación usa los puntos de código estándar Unicode para emoji, muestra los glifos apropiados.

Myanmar, Tiffinagh e idiomas antiguos de Hangul

A partir de Windows 8, DirectWrite admite el bloque de puntos de código Unicode que corresponden a los glifos en los idiomas Myanmar, Tiffinagh y Antiguo Hangul, por lo que puede crear aplicaciones que incluyan texto de estos tres idiomas. Además de admitir estos caracteres, DirectWrite admite la forma única en que Antiguo Hangul maneja los saltos de línea.

Nuevos scripts

A partir de Windows 8, el método GetScriptProperties devuelve información para varios scripts nuevos. Esta es la lista de scripts que DirectWrite admite en Windows 8 y después.

  • Avestan
  • Bamum
  • Batak
  • Brahmi
  • Jeroglíficos egipcios
  • Arameo imperial
  • Pahlavi inscripcional
  • Parthian inscripcional
  • Javanés
  • Kaithi
  • Lisu (Fraser)
  • Mandaic
  • Meetei Mayek
  • Antiguo sur de Arabia
  • Antiguo turco (Orkhon)
  • Samaritano
  • Tai Tham (Lanna)
  • Tai Viet