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.
Ein weiteres Beispiel für alternative Glyphen sind Swash-Glyphen. Der folgende Screenshot zeigt Standard- und Swash-Glyphen für die Schriftart Pescadero.
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.
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.