Freigeben über


Glyphen und Glyphenläufe

Glyphen und Glyphenläufe sind auf der niedrigsten Funktionalitätsebene der DirectWrite-API, der Glyphenrenderingebene, verfügbar.

Glyphen

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 in einer einzigen Glyphe kombiniert werden, dieser Prozess wird als Glyphenkomposition bezeichnet. Dies kann auch in entgegengesetzter Richtung erfolgen, wobei eine einzelne Glyphe in mehrere Glyphen aufgeteilt wird, die als Glyphendekomposition bezeichnet werden.

Alternative Glyphen

Schriftarten können alternative Glyphen für Zeichen bereitstellen, z. B. die stilistischen alternativen Glyphen für die OpenType-Schriftart Pericles, 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 Schriftart Pescadero.

Screenshot der Buchstaben

Swashes und andere typografische Features, einschließlich aufwendiger alternativer Glyphen, stehen über OpenTypezur Verfügung. OpenType-Typografiefeatures können mithilfe der IDWriteTextLayout::SetTypography- auf einen Textbereich angewendet und die DWRITE_FONT_FEATURE_TAG Enumerationskonstante übergeben, die dem gewünschten Feature zugeordnet ist.

Glyphenläufe

Eine Glyphenausführung stellt einen zusammenhängenden Satz von Glyphen dar, die alle alle dieselbe Schriftart und denselben Schriftgrad aufweisen, sowie denselben Clientzeichnungseffekt( falls vorhanden). Unterstreichung und Durchgestrichen 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.

IdWriteFontFace-Schnittstelle

DirectWrite verwendet dasselbe System für die Schriftartklassifizierung wie Windows Presentation Foundation (WPF), sodass pro Schriftartenfamilie mehrere physische Schriftarten vorhanden sein können. Eine Schriftart, z. B. die IDWriteFontFace Schnittstelle in DirectWrite, stellt eine physische Schriftart mit einer bestimmten Stärke, Schräge und Streckung dar. Sie enthält den Schriftschrifttyp, geeignete Dateiverweise, Gesichtsidentifikationsdaten und verschiedene Schriftartdaten wie Metriken, Namen und Glyphenkonturen.

Die IDWriteFontFace- kann direkt aus einem Schriftartnamen erstellt oder aus einer Schriftartsammlung abgerufen werden.

Glyphenmetriken

Einzelne Glyphen weisen Metriken zu. Mithilfe der IDWriteFontFace::GetDesignGlyphMetrics-Methode können Sie die Metriken für alle Glyphen in einer Glyphe abrufen. Dies gibt eine DWRITE_GLYPH_METRICS Struktur zurück, die die Vorbreite, die linke und rechte Seite, die obere und untere Seite, die Höhe und den vertikalen Basislinienursprung aufweist.

Das folgende Diagramm zeigt verschiedene Metriken von zwei verschiedenen Glyphenzeichen.

Diagramm der Metriken von zwei verschiedenen Glyphen

Zeichnen eines Glyphenlaufs

Bei der Implementierung eines benutzerdefinierten Textrenderers wird das Rendern von Glyphen vom IDWriteTextRenderer::D rawGlyphRunverarbeitet, einer Rückrufmethode, die Sie als Teil einer von IDWriteTextRendererabgeleiteten Klasse implementieren. Die DWRITE_GLYPH_RUN Struktur, die an DrawGlyphRun übergeben wird, enthält ein IDWriteFontFace-Objekt mit dem Namen fontFace, das die Schriftart für die gesamte Glyphenausführung darstellt.

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

Weitere Informationen finden Sie im Thema Implementieren eines benutzerdefinierten Textrenderers Thema.