Menggunakan Mesin Shaping
Uniscribe menggunakan beberapa mesin pembentukan yang berisi pengetahuan tata letak untuk skrip tertentu. Ini juga memanfaatkan mesin pembentukan tata letak OpenType untuk menangani fitur skrip khusus font, seperti pembuatan glif, pengukuran rentang, dan dukungan pemenggalan kata. Uniscribe mengelola pengurutan ulang karakter dua arah menggunakan algoritma dua arah Unicode, dan mendukung format font tata letak non-OpenType untuk pembentukan aksara Arab, Ibrani, dan Thai.
Karena rentang titik kode yang tepat yang ditetapkan untuk setiap mesin pembentukan mungkin bervariasi, nomor skrip tidak diterbitkan, dengan pengecualian SCRIPT_UNDEFINED. Namun, aplikasi Anda dapat menguji atribut skrip dengan memanggil fungsiScriptGetProperties, yang mengakses tabel properti skrip global. Aplikasi dapat menggunakan properti skrip global untuk membantu menggabungkan aturan tata letaknya sendiri dengan divisi mesin pembentukan yang diperlukan.
Aplikasi mengakses mesin pembentukan dengan panggilan ke fungsi ScriptShape. Semua mesin pembentukan skrip kompleks, mesin pembentukan digit, dan mesin pembentukan ASCII memvalidasi font yang ditunjukkan dalam pegangan konteks perangkat sebelum membentuk font. Skrip kompleks harus dibentuk menggunakan skrip yang dikembalikan oleh fungsi ScriptItemize agar dapat terbaca. Run lain tetap dapat terbaca jika dibentuk dengan SCRIPT_UNDEFINED yang ditentukan dalam anggota eScript dari struktur SCRIPT_ANALYSIS, meskipun mungkin kehilangan kualitas tipografis.
ScriptShape mengembalikan 0 jika berhasil, atau USP_E_SCRIPT_NOT_IN_FONT jika font yang disediakan oleh aplikasi tidak berisi glyph atau tabel pembentukan yang memadai. Jika aplikasi menentukan SCRIPT_UNDEFINED dan beberapa karakter tidak didukung oleh font, fungsi masih berhasil. Dalam hal ini, aplikasi harus memindai buffer output glyph untuk keberadaan glyph yang hilang. Untuk strategi menangani glyph yang hilang, lihat Menggunakan Font Fallback.
Topik terkait