Penembolokan (Internasionalisasi)
Uniscribe menyimpan pemetaan Unicode-to-glyph (cmap), lebar glyph, dan tabel pembentukan skrip OpenType. Handel ke tabel untuk font tertentu dengan ukuran tertentu disebut "cache skrip". Banyak fungsi Uniscribe memanggil parameter handel konteks perangkat dan penunjuk ke struktur SCRIPT_CACHE . Fungsi-fungsi ini mencari informasi terlebih dahulu melalui cache skrip, menggunakan konteks perangkat hanya ketika tabel yang diperlukan belum di-cache. Saat memanggil fungsi ScriptShape, ScriptPlace, atau ScriptTextOut , aplikasi harus meneruskan penunjuk ke struktur SCRIPT_CACHE . Handel harus diinisialisasi ke NULL sebelum pertama kali aplikasi meneruskannya ke fungsi Uniscribe. Aplikasi tidak boleh melewati handel yang sama untuk font yang berbeda atau ukuran yang berbeda.
Aplikasi dapat membebaskan cache skrip kapan saja. Uniscribe mempertahankan jumlah referensi dalam cache font dan pembentuknya, membebaskan data font hanya ketika semua ukuran font dibebaskan, dan membebaskan data pembentuk hanya ketika semua font yang didukung pembentuk dibebaskan. Ketika aplikasi selesai dengan gaya, aplikasi harus memanggil fungsi ScriptFreeCache untuk membebaskan cache skrip untuk gaya tersebut.
Untuk ScriptShape dan ScriptPlace, aplikasi berlaku untuk meneruskan konteks perangkat null. Paling sering panggilan akan berhasil, karena tabel yang diperlukan sudah di-cache. Jika pembentukan atau penempatan memerlukan akses ke konteks perangkat, ScriptShape atau ScriptPlace segera kembali dengan kode kesalahan E_PENDING. Kemudian aplikasi harus memilih font dalam konteks perangkat. Untuk sebagian besar aplikasi, ini membantu performa dengan menghindari persiapan berulang dari handel konteks perangkat dengan panggilan ke SelectObject.
Topik terkait