Ukládání do mezipaměti (internationalizace)
Uniscribe ukládá mapování Unicode-na-glyf (cmap), šířky glyfů a tabulky tvarování skriptů OpenType. Popisovač tabulek pro konkrétní písmo určité velikosti se nazývá "mezipaměť skriptu". Mnoho funkcí Uniscribe volá parametr popisovače kontextu zařízení i ukazatel na strukturu SCRIPT_CACHE. Tyto funkce nejprve hledají informace prostřednictvím mezipaměti skriptu pomocí kontextu zařízení pouze v případě, že požadované tabulky ještě nejsou uložené v mezipaměti. Při volání funkce ScriptShape, ScriptPlacenebo ScriptTextOut musí aplikace předat ukazatel na strukturu SCRIPT_CACHE. Popisovač by měl být inicializován jako NULL předtím, než ho aplikace poprvé předá funkci Uniscribe. Aplikace by neměla nikdy používat stejný popisovač pro různá písma nebo různé velikosti.
Aplikace může kdykoli uvolnit mezipaměť skriptu. Uniscribe udržuje počty odkazů ve fontech a shaperových mezipamětech, uvolní data fontu pouze tehdy, když jsou uvolněny všechny velikosti daného fontu, a uvolní data shaperu pouze tehdy, když jsou uvolněny všechny fonty, které shaper podporuje. Když aplikace dokončí práci se stylem, měla by zavolat funkci ScriptFreeCache k uvolnění mezipaměti skriptů pro daný styl.
Pro ScriptShape a ScriptPlaceje platné, aby aplikace předala kontext zařízení jako null. Volání bude nejčastěji úspěšné, protože požadované tabulky jsou již uloženy v mezipaměti. Pokud tvarování nebo umístění vyžaduje přístup k kontextu zařízení, ScriptShape nebo ScriptPlace vrátí okamžitě kód chyby E_PENDING. Aplikace pak musí vybrat písmo v kontextu zařízení. Pro většinu aplikací to zlepšuje výkon tím, že se vyhne opakované přípravě popisovače kontextu zařízení pomocí volání SelectObject.
Související témata