Eksekusi Glyph dan Glyph
Glyph dan eksekusi glyph tersedia pada lapisan fungsionalitas terendah DirectWrite API, lapisan penyajian glyph.
Glyphs
Glyph adalah representasi fisik karakter dalam font tertentu. Karakter mungkin memiliki banyak glyph, dengan setiap font pada sistem berpotensi menentukan glyph yang berbeda untuk karakter tersebut.
Dua atau lebih glyph juga dapat digabungkan menjadi satu glyph, proses ini disebut komposisi glyph. Ini juga dapat dilakukan ke arah yang berlawanan, satu glyph yang dibagi menjadi beberapa glyph, yang dikenal sebagai penguraian glyph.
Glyph Alternatif
Font dapat menyediakan glyph alternatif untuk karakter, seperti glyph alternatif gaya untuk font Pericles OpenType, seperti yang ditunjukkan pada cuplikan layar berikut. Karakter 'A', 'E', dan 'O' dirender dengan glyph alternatif gaya.
Contoh lain dari glyph alternatif adalah glyph pencucian. Cuplikan layar berikut menunjukkan glyph standar dan cuci untuk font Pescadero.
Swash dan fitur tipografi lainnya, termasuk glyph alternatif yang lebih rumit, tersedia melalui OpenType. Fitur tipografi OpenType dapat diterapkan ke rentang teks dengan menggunakan IDWriteTextLayout::SetTypography dan meneruskan konstanta enumerasi DWRITE_FONT_FEATURE_TAG yang terkait dengan fitur yang diinginkan.
Eksekusi Glyph
Eksekusi glyph mewakili sekumpulan glyph yang berdampingan yang semuanya memiliki wajah dan ukuran font yang sama, serta efek gambar klien yang sama, jika ada. Garis bawah dan coretan bukan bagian dari eksekusi glyph untuk rentang teks yang diterapkan, dan digambar nanti. Objek sebaris, seperti gambar, juga digambar secara terpisah, karena bukan bagian dari font.
Antarmuka IDWriteFontFace
DirectWrite menggunakan sistem yang sama untuk klasifikasi font sebagai Windows Presentation Foundation (WPF), sehingga mungkin ada beberapa font fisik per setiap keluarga font. Wajah font, seperti antarmukaIDWriteFontFacedi DirectWrite, mewakili font fisik, dengan bobot, miring, dan peregangan tertentu. Ini berisi jenis wajah font, referensi file yang sesuai, data identifikasi wajah, dan berbagai data font seperti metrik, nama, dan kerangka glyph.
IDWriteFontFace dapat dibuat langsung dari nama font atau diperoleh dari koleksi font.
Metrik Glyph
Setiap glyph memiliki metrik yang terkait dengannya. Anda dapat memperoleh metrik untuk semua glyph dalam eksekusi glyph dengan menggunakan metodeIDWriteFontFace::GetDesignGlyphMetrics. Ini mengembalikan struktur DWRITE_GLYPH_METRICS yang memiliki lebar muka, bantalan sisi kiri dan kanan, bantalan sisi atas dan bawah, tinggi dan asal garis besar vertikal.
Diagram berikut menunjukkan berbagai metrik dari dua karakter glyph yang berbeda.
diagram
Menggambar Eksekusi Glyph
Saat menerapkan perender teks kustom, penyajian glyph ditangani oleh IDWriteTextRenderer::D rawGlyphRun, metode panggilan balik yang Anda terapkan sebagai bagian dari kelas yang berasal dari IDWriteTextRenderer. Struktur DWRITE_GLYPH_RUN yang diteruskan ke DrawGlyphRun berisi objekIDWriteFontFace, bernama fontFace, yang mewakili wajah font untuk seluruh eksekusi glyph.
ObjekIDWriteFontFacejuga menyediakan metodeGetGlyphRunOutline, yang menghitung kerangka glyph dengan menggunakan panggilan balik sink geometri tertentu, seperti ID2D1SimplifiedGeometrySink saat merender dengan Direct2D.
Untuk informasi selengkapnya, lihat Cara Menerapkan topik Perender Teks Kustom.