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 Introducción a DWriteCore.
Actualización del 10 de mayo de 2019 de Windows 2019
No se agregaron ni actualizaron características 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
Se agregaron o actualizaron las siguientes características y API 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 DWRITE_FONT_SOURCE_TYPE
- Interfaz IDWriteFontSet3 y sus métodos
Actualización de abril de 2018 de Windows 10
Se agregaron o actualizaron las siguientes características y API para Windows 10, versión 1803 (10.0; Compilación 17134): también conocida como actualización de abril de 2018 Windows 10.
Nuevo
- Interfaz IDWriteFactory7 y sus métodos
- Interfaz IDWriteFontCollection3 y sus métodos
- Interfaz IDWriteFontSet2 y sus métodos
Windows 10 Fall Creators Update
Se agregaron o actualizaron las siguientes características y API para Windows 10, versión 1709 (10.0; Compilación 16299): también conocida como Windows 10 Fall Creators Update.
Nuevo
- enumeración DWRITE_AUTOMATIC_FONT_AXES
- enumeración DWRITE_FONT_AXIS_ATTRIBUTES
- enumeración DWRITE_FONT_AXIS_TAG
- enumeración DWRITE_FONT_FAMILY_MODEL
- Interfaz IDWriteFactory6 y sus métodos
- Interfaz IDWriteFontCollection2 y sus métodos
- Interfaz IDWriteFontFace5 y sus métodos
- Interfaz IDWriteFontFaceReference1 y sus métodos
- Interfaz IDWriteFontFallback1 y sus métodos
- Interfaz IDWriteFontFamily2 y sus métodos
- Interfaz IDWriteFontList2 y sus métodos
- Interfaz IDWriteFontResource y sus métodos
- Interfaz IDWriteFontSet1 y sus métodos
- Interfaz IDWriteFontSetBuilder2 y sus métodos
- Interfaz IDWriteTextFormat3 y sus métodos
- Interfaz 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
Enumeración DWRITE_GLYPH_IMAGE_FORMATS movida de dwrite_3.h a dcommon.h.
Windows 10 Creators Update
Se agregaron o actualizaron las siguientes características y API para Windows 10, versión 1703 (10.0; Compilación 15063): también conocida como Windows 10 Creators Update.
Compatibilidad ampliada con api para fuentes en la nube y conjuntos de fuentes personalizados
Windows 10 API incluidas que permiten a las aplicaciones acceder fácilmente a fuentes desde un servicio de fuentes de Windows. En el Windows 10 Creators Update, las API para fuentes remotas se extienden para permitir un acceso sencillo a fuentes de otros orígenes de la Web a las que se puede acceder mediante HTTP o HTTPS.
Las nuevas API de fuente remota se pueden usar con servicios web públicos o privados. Además, se pueden usar para tener acceso a archivos de fuente OpenType sin procesar (.ttf, .otf., .ttc, .otc) o fuentes empaquetadas en formatos de contenedor WOFF o WOFF2 . Las nuevas API se usan junto con las API existentes para las solicitudes de puesta en cola para descargar datos de fuente remotos y para controlar el proceso de descarga real.
Otras NUEVAS API facilitan el trabajo de las aplicaciones con fuentes personalizadas almacenadas 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 tema siguiente:
Conjuntos de fuentes personalizadas
Consulte también los vínculos a los temas de referencia de API proporcionados en ese tema. El uso de las API nuevas y existentes para trabajar con fuentes personalizadas también se muestra en el ejemplo de conjuntos de fuentes personalizados de DirectWrite. En este ejemplo se muestra la implementación de código para varios escenarios diferentes, incluidas las fuentes locales en el disco, las fuentes remotas en la Web, los datos de fuente en memoria y las 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 extensión interesante para el formato conocido como Variaciones de fuente OpenType. DirectWrite se ha actualizado en el Windows 10 Creators Update para admitir instancias con nombre de fuentes de variables. Para obtener más información, consulte el siguiente tema:
Actualización de aniversario de Windows 10
Se agregaron o actualizaron las siguientes características y API 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 Windows 10 Actualización de aniversario, DirectWrite proporciona compatibilidad integrada para una variedad más amplia de formatos de fuente de color, lo que permite a los desarrolladores usar más tipos de fuentes en sus aplicaciones con tecnología de DirectWrite que nunca. Esto incluye la compatibilidad para:
- La tabla OpenType "COLR", que permite el contenido vectorial compacto en fuentes. (Compatible desde Windows 8.1).
- La tabla 'SVG ' OpenType, que permite el contenido SVG en fuentes.
- La tabla OpenType "CBDT", que permite el contenido del mapa de bits de color en fuentes.
- La tabla OpenType "sbix", que permite el contenido de mapa de bits de color en 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, vea los temas siguientes:
Compatibilidad con Adobe Typekit y otros clientes de servicio de fuentes
Algunos servicios de fuente, como Adobe Typekit, tienen utilidades del lado cliente que permiten a un usuario cargar fuentes del servicio y usarlas en diferentes aplicaciones en su máquina Windows. Estas utilidades suelen funcionar realizando llamadas en tiempo de ejecución a GDI para cargar fuentes adicionales, en lugar de instalar fuentes de forma permanente en el sistema. Debido a ese diseño, en versiones anteriores de Windows, las fuentes se pueden usar en aplicaciones basadas en GDI, pero no en DirectWrite aplicaciones. A partir de la actualización de aniversario de Windows 10, las fuentes cargadas por estas utilidades también estarán disponibles en DirectWrite, así como 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 licencias por usuario, las fuentes cargadas por estas utilidades se administran por usuario. Como resultado, las aplicaciones de DirectWrite existentes pueden usar fuentes que los usuarios finales han obtenido mediante estos servicios, sin cambios de código necesarios 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 fuente OpenType y TrueType admiten largamente la capacidad de empaquetar varias fuentes en un único archivo de fuente, conocido como "colección de fuentes". La especificación OpenType siempre ha permitido que las fuentes usen formatos TrueType o CFF para los datos de esquema del glifo. Sin embargo, hasta hace poco, la especificación solo se ha permitido para las colecciones en las que los esquemas de glifo usan el formato TrueType. La versión 1.7 de OpenType ahora permite que las colecciones usen formatos TrueType o CFF para los datos de esquema del glifo. A partir de la actualización de aniversario de Windows 10, DirectWrite admitirá colecciones OpenType mediante datos de esquema de CFF.
Windows 10
integración del servicio de fuentes de Windows
A partir de Windows 10, las fuentes que se incluyen con Windows están disponibles en un servicio en línea y son accesibles a través de DirectWrite en cualquier dispositivo Windows 10. Esto se aplica a todas las ediciones de Windows 10, incluidas Windows 10 Mobile, Xbox y HoloLens, así como al cliente de escritorio. Esto permite a las aplicaciones mostrar contenido con cualquier fuente Windows incluso si la fuente no está instalada actualmente en el dispositivo.
La compatibilidad con los mecanismos de servicio de fuente DirectWrite se ha implementado en el marco XAML, lo que significa que las aplicaciones que usan XAML no requieren 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 tendrán que usar nuevas API para usar los mecanismos de servicio de fuente. Para obtener más información, vea los temas siguientes:
- Método IDWriteFactory3::GetSystemFontCollection
- Interfaz IDWriteTextLayout3
- Interfaz IDWriteFontDownloadQueue
- Interfaz IDWriteFontDownloadListener
En el ejemplo de código fuentes descargables (DirectWrite) se muestra el uso de varias de las nuevas API.
API del conjunto de fuentes
las interfaces de colección de fuentes de DirectWrite proporcionan una vista a una colección de fuentes organizadas por familias de fuentes, usando el peso, el ajuste y el estilo como atributos de sub-familia. 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, ya que en puede admitir la enumeración de familias de peso, stretch/style, pero también puede admitir la consulta y el filtrado mediante otros atributos de fuente.
En Windows 10, este mecanismo de control de fuentes más flexible está disponible para las aplicaciones a través de IDWriteFontSet y las API relacionadas. Las API del conjunto de fuentes se pueden usar, por ejemplo, para crear una interfaz de usuario de selector de fuentes personalizada que aproveche las propiedades de fuente personalizadas de la aplicación en un conjunto de fuentes personalizado.
Para obtener más información, vea los temas siguientes:
- Interfaz IDWriteFontSet
- Interfaz IDWriteFontSetBuilder
- enumeración DWRITE_FONT_PROPERTY_ID
- Método IDWriteFontFactory3::GetSystemFontSet
Nuevos modos de interlineado de diseño de texto
las interfaces de formato de texto y diseño de texto de DirectWrite admiten nuevos modos de interlineado. En versiones anteriores, la implementación del diseño de texto de DirectWrite permitía el espaciado de línea en el que el alto de cada línea se estableció automáticamente en función del elemento más alto dentro de una línea (el modo "predeterminado"), o el espaciado de líneas con todas las líneas establecidas en un alto uniforme determinado por la aplicación (el modo "uniforme"). En Windows 10, se admite un modo de espaciado de línea "proporcional" adicional que proporciona a las aplicaciones más opciones para el comportamiento de interlineado. Para obtener más información, vea los temas siguientes:
- Interfaz IDWriteTextLayout3
- Método IDWriteTextLayout3::SetLineSpacing
- estructura de DWRITE_LINE_SPACING
- enumeración DWRITE_LINE_SPACING_METHOD
- enumeración DWRITE_FONT_LINE_GAP_USAGE
- Método IDWriteTextLayout3::GetLineMetrics
- estructura de DWRITE_LINE_METRICS1
El ejemplo de código de interlineado (DirectWrite) muestra el uso de varias de las nuevas API y también proporciona una visualización de todos los diferentes modos de espaciado de línea que facilita mucho la comprensión de las distintas opciones de espaciado de línea disponibles.
Interoperabilidad de GDI
Desde su introducción en Windows 7, DirectWrite ha proporcionado una ruta de migración para las aplicaciones que se implementaron originalmente mediante el modelo de fuente de GDI, el diseño de texto y la representación. Esto se proporcionó a través de la interfaz [[IDWriteGdiInterop]]. En Windows 10, las API adicionales proporcionan funcionalidades adicionales de interoperabilidad de GDI. Para obtener más información, consulte el tema siguiente:
Windows 8.1
Representar 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, vea los temas siguientes:
Windows 8
Una nueva interfaz de fábrica, IDWriteFactory1, para crear interfaces adicionales disponibles.
Propiedades de fuente adicionales, como: super/subíndice, pendiente de intercalación, PANOSE y rangos Unicode.
Mejoras de espaciado, como: espaciado de caracteres de control, pares de inter kerning heredados y justificación. Consulta el tema Justificación, Kerning y Espaciado para obtener más información.
Destinos 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 memoria caché de fuentes. A partir de Windows 8 la memoria caché de fuentes es global y se inicia cuando se inicia el equipo.
Nuevos modos de representación.
A partir de Windows 8, DirectWrite admite una serie de características que le 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 Ideograph unificado 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 la extensión C y la extensión D del sitio web Unicode.
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ó una competencia para elegir un símbolo para la moneda de 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, DirectWrite aplicaciones 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 ideógrafo emoji. A partir de Windows 8, DirectWrite admite el desbloqueo de código Unicode asociado con emoji, por lo que si la aplicación usa los puntos de código estándar Unicode para emojis, muestra los glifos adecuados.
Myanmar, Tiffinagh y idiomas antiguos de Hangul
A partir de Windows 8, DirectWrite admite el bloque de puntos de código Unicode que corresponden a los glifos de los idiomas Myanmar, Tiffinagh y Old 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 Old Hangul controla la separación de líneas.
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
- Hieroglíficos egipcios
- Imperial Aramaic
- Pahlavi inscripción
- Parthian inscripción
- Javanés
- Kaithi
- Lisu (Fraser)
- Mandaic
- Meetei Mayek
- Antiguos arabianos del sur
- Antiguo turco (Orkhon)
- Samaritano
- Tai Tham (Lanna)
- Tai Viet