Bagikan melalui


Pengcache-an (Internasionalisasi)

Uniscribe menyimpan pemetaan Unicode ke glyph (cmap), lebar glyph, dan tabel pembentukan skrip OpenType. Handle 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 meneruskan handle yang sama untuk jenis 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 tersebut dibebaskan, dan membebaskan data pembentuk hanya ketika semua font yang didukung oleh pembentuk tersebut dibebaskan. Ketika aplikasi selesai dengan gaya, itu harus memanggil fungsi ScriptFreeCache untuk membersihkan cache skrip untuk gaya tersebut.

Untuk ScriptShape dan ScriptPlace, valid bagi aplikasi untuk menggunakan 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.

Menggunakan Uniscribe