Freigeben über


Glyphen und Glyphenausführungen

Glyphen- und Glyphenausführungen stehen auf der untersten Funktionalitätsebene der DirectWrite-API, der Glyphenrenderingebene, zur Verfügung.

Symbole

Eine Glyphe ist eine physische Darstellung eines Zeichens in einer bestimmten Schriftart. Zeichen können viele Glyphen aufweisen, wobei jede Schriftart in einem System möglicherweise eine andere Glyphe für dieses Zeichen definiert.

Zwei oder mehr Glyphen können auch zu einer einzigen Glyphe kombiniert werden, dieser Prozess wird als Glyphenzusammensetzung bezeichnet. Dies kann auch in entgegengesetzter Richtung erfolgen, wobei eine einzelne Glyphe in mehrere Glyphen unterteilt wird, die als Glyphenzerlegung bezeichnet wird.

Alternative Glyphen

Schriftarten können alternative Glyphen für Zeichen bereitstellen, z. B. die stilistischen alternativen Glyphen für die Schriftart Pericles OpenType, wie im folgenden Screenshot gezeigt. Die Zeichen "A", "E" und "O" werden mit stilistischen alternativen Glyphen gerendert.

Screenshot der

Ein weiteres Beispiel für alternative Glyphen sind Swash-Glyphen. Der folgende Screenshot zeigt Standard- und Swash-Glyphen für die Pescadero-Schriftart.

Screenshot der Buchstaben

Swashes und andere typografische Features, einschließlich komplexerer alternativer Glyphen, sind über OpenType verfügbar. Typografische OpenType-Features können auf einen Textbereich angewendet werden, indem IDWriteTextLayout::SetTypography verwendet wird und die DWRITE_FONT_FEATURE_TAG Enumerationskonstante übergeben wird, die dem gewünschten Feature zugeordnet ist.

Glyphenausführungen

Eine Glyphenausführung stellt einen zusammenhängenden Satz von Glyphen dar, die alle die gleiche Schriftfläche und -größe sowie ggf. denselben Clientzeichnungseffekt aufweisen. Unterstrichen und Durchstreichen sind nicht Teil der Glyphenausführung für den Textbereich, auf den sie angewendet werden, und werden später gezeichnet. Inlineobjekte, z. B. Bilder, werden ebenfalls separat gezeichnet, da sie nicht Teil einer Schriftart sind.

Die IDWriteFontFace-Schnittstelle

DirectWrite verwendet das gleiche System für die Schriftklassifizierung wie Windows Pesentation Foundation (WPF), sodass pro Schriftfamilie mehrere physische Schriftarten vorhanden sein können. Eine Schriftart, z. B. die IDWriteFontFace-Schnittstelle in DirectWrite, stellt eine physische Schriftart mit einer bestimmten Gewichtung, Neigung und Dehnung dar. Sie enthält den Schriftartentyp, die entsprechenden Dateiverweise, Gesichtserkennungsdaten und verschiedene Schriftartdaten wie Metriken, Namen und Glyphengliederungen.

Das IDWriteFontFace kann direkt aus einem Schriftartennamen oder aus einer Schriftartensammlung erstellt werden.

Symbolmetriken

Einzelnen Glyphen sind Metriken zugeordnet. Sie können die Metriken für alle Glyphen in einer Glyphe abrufen, die ausgeführt wird, indem Sie die IDWriteFontFace::GetDesignGlyphMetrics-Methode verwenden. Dadurch wird eine DWRITE_GLYPH_METRICS Struktur zurückgegeben, die die Vorlaufbreite, das linke und rechte Lager, das obere und untere Lager, die Höhe und den vertikalen Grundlinienursprung aufweist.

Das folgende Diagramm zeigt verschiedene Metriken von zwei verschiedenen Glyphenzeichen.

Diagramm der Metriken von zwei verschiedenen Glyphen

Zeichnen einer Glyphenausführung

Beim Implementieren eines benutzerdefinierten Textrenderers wird das Rendern von Glyphen von IDWriteTextRenderer::D rawGlyphRun verarbeitet, einer Rückrufmethode, die Sie als Teil einer von IDWriteTextRenderer abgeleiteten Klasse implementieren. Die anDrawGlyphRun übergebene DWRITE_GLYPH_RUN-Struktur enthält ein IDWriteFontFace-Objekt namens fontFace, das die Schriftart für die gesamte Glyphenausführung darstellt.

Das IDWriteFontFace-Objekt stellt auch die GetGlyphRunOutline-Methode bereit, die die Glyphenumrisse mithilfe eines angegebenen Geometriesenkenrückrufs berechnet, z. B. ID2D1SimplifiedGeometrySink beim Rendern mit Direct2D.

Weitere Informationen finden Sie im Thema Implementieren eines benutzerdefinierten Textrenderers .