Compartir a través de


Glifos y ejecuciones de glifos

Los glifos y las ejecuciones de glifos están disponibles en la capa más baja de funcionalidad de la API de DirectWrite, la capa de representación del glifo.

Glifos

Un glifo es una representación física de un carácter en una fuente determinada. Los caracteres pueden tener muchos glifos, con cada fuente en un sistema que podría definir un glifo diferente para ese carácter.

Dos o más glifos también se pueden combinar en un solo glifo, este proceso se denomina composición glifo. Esto también se puede hacer en la dirección opuesta, un solo glifo que se divide en varios glifos, conocido como descomposición del glifo.

Glifos alternativos

Las fuentes pueden proporcionar glifos alternativos para caracteres, como los glifos alternativos estilísticos para la fuente OpenType de Pericles, como se muestra en la siguiente captura de pantalla. Los caracteres "A", "E" y "O" se representan con glifos alternativos estilísticos.

captura de pantalla de

Otro ejemplo de glifos alternativos son glifos de lavado. La siguiente captura de pantalla muestra glifos estándar y de lavado para la fuente Pescadero.

captura de pantalla de las letras

Swashes y otras características tipográficas, incluidos glifos alternativos más elaborados, están disponibles a través de OpenType. Las características tipográficas openType se pueden aplicar a un intervalo de texto mediante el IDWriteTextLayout::SetTypography y pasando la constante de enumeración DWRITE_FONT_FEATURE_TAG asociada a la característica deseada.

Ejecuciones de glifos

Una ejecución de glifos representa un conjunto contiguo de glifos que tienen la misma cara y tamaño de fuente, así como el mismo efecto de dibujo de cliente, si existe. El subrayado y el tachado no forman parte de la ejecución del glifo para el intervalo de texto al que se aplican y se dibujan más adelante. Los objetos insertados, como las imágenes, también se dibujan por separado, ya que no forman parte de una fuente.

La interfaz IDWriteFontFace

DirectWrite usa el mismo sistema para la clasificación de fuentes que Windows Presentation Foundation (WPF), por lo que puede haber varias fuentes físicas por cada familia de fuentes. Una cara de fuente, como la interfaz IDWriteFontFace en DirectWrite, representa una fuente física, con un peso específico, inclinado y stretch. Contiene el tipo de cara de fuente, las referencias de archivo adecuadas, los datos de identificación facial y varios datos de fuente, como métricas, nombres y contornos de glifo.

ElIDWriteFontFace dese puede crear directamente a partir de un nombre de fuente o obtenerlo de una colección de fuentes.

Métricas de glifo

Los glifos individuales tienen métricas asociadas. Puede obtener las métricas de todos los glifos de una ejecución de glifos mediante el método IDWriteFontFace::GetDesignGlyphMetrics. Esto devuelve una estructura DWRITE_GLYPH_METRICS que tiene el ancho de avance, el rodamiento izquierdo y derecho, el rodamiento lateral superior e inferior, el alto y el origen de línea base vertical.

En el diagrama siguiente se muestran varias métricas de dos caracteres de glifo diferentes.

diagrama de las métricas de dos glifos diferentes

Dibujar un glifo ejecutar

Al implementar un representador de texto personalizado, la representación de glifos se controla mediante el IDWriteTextRenderer::D rawGlyphRun, un método de devolución de llamada que se implementa como parte de una clase derivada de IDWriteTextRenderer. La estructura DWRITE_GLYPH_RUN que se pasa a DrawGlyphRun contiene un objeto IDWriteFontFace, denominado fontFace, que representa la cara de fuente para toda la ejecución del glifo.

El objetoIDWriteFontFace también proporciona el método GetGlyphRunOutline, que calcula los contornos del glifo mediante una devolución de llamada del receptor de geometría especificada, como ID2D1SimplifiedGeometrySink al representar con Direct2D.

Para obtener más información, consulte el tema Cómo implementar un representador de texto personalizado.