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
- Enumeración de DWRITE_FONT_SOURCE_TYPE
- Interfaz de IDWriteFontSet3 y sus métodos
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
- Interfaz de IDWriteFactory7 y sus métodos
- Interfaz de IDWriteFontCollection3 y sus métodos
- Interfaz de IDWriteFontSet2 y sus métodos
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
- Enumeración de DWRITE_AUTOMATIC_FONT_AXES
- Enumeración de DWRITE_FONT_AXIS_ATTRIBUTES
- Enumeración de DWRITE_FONT_AXIS_TAG
- Enumeración de DWRITE_FONT_FAMILY_MODEL
- Interfaz de IDWriteFactory6 y sus métodos
- Interfaz de IDWriteFontCollection2 y sus métodos
- Interfaz de IDWriteFontFace5 y sus métodos
- Interfaz de IDWriteFontFaceReference1 y sus métodos
- Interfaz de IDWriteFontFallback1 y sus métodos
- Interfaz de IDWriteFontFamily2 y sus métodos
- Interfaz de IDWriteFontList2 y sus métodos
- Interfaz de IDWriteFontResource y sus métodos
- Interfaz de IDWriteFontSet1 y sus métodos
- Interfaz de IDWriteFontSetBuilder2 y sus métodos
- Interfaz de IDWriteTextFormat3 y sus métodos
- Interfaz de IDWriteTextLayout4 y sus métodos
- Macro de DWRITE_MAKE_FONT_AXIS_TAG
- Estructura de DWRITE_FONT_AXIS_RANGE
- Estructura de DWRITE_FONT_AXIS_VALUE
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:
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:
- Método de IDWriteFactory3::GetSystemFontCollection
- Interfaz de IDWriteTextLayout3
- Interfaz de IDWriteFontDownloadQueue
- Interfaz de IDWriteFontDownloadListener
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:
- Interfaz de IDWriteFontSet
- Interfaz de IDWriteFontSetBuilder
- Enumeración de DWRITE_FONT_PROPERTY_ID
- Método de IDWriteFontFactory3::GetSystemFontSet
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:
- Interfaz de IDWriteTextLayout3
- Método de IDWriteTextLayout3::SetLineSpacing
- Estructura de DWRITE_LINE_SPACING
- Enumeración de DWRITE_LINE_SPACING_METHOD
- Enumeración de DWRITE_FONT_LINE_GAP_USAGE
- Método de IDWriteTextLayout3::GetLineMetrics
- Estructura de DWRITE_LINE_METRICS1
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:
- Interfaz de IDWriteGdiInterop1
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:
- Enumeración de D2D1_DRAW_TEXT_OPTIONS
- Método de IDWriteFactory2::TranslateColorGlyphRun
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