Dela via


Cachelagring (internationalisering)

Uniscribe sparar Unicode-to-glyph-mappningar (cmap), glyphbredder och OpenType-skriptformningstabeller. Ett handtag till tabellerna för ett visst teckensnitt av en viss storlek kallas "script cache". Många Uniscribe-funktioner anropar både en enhetskontextreferensparameter och en pekare till en SCRIPT_CACHE struktur. De här funktionerna letar först efter information via skriptcachen med hjälp av enhetskontexten endast när obligatoriska tabeller inte redan cachelagras. När du anropar funktionen ScriptShape, ScriptPlaceeller ScriptTextOut måste programmet skicka en pekare till en SCRIPT_CACHE struktur. Handtaget bör initieras till NULL innan programmet för första gången skickar det till en Uniscribe-funktion. Programmet bör aldrig skicka samma handtag för olika teckensnitt eller olika storlekar.

Ett program kan när som helst frigöra en skriptcache. Uniscribe upprätthåller referensantal i teckensnitts- och formningscacheminnen, frigör endast teckensnittsdata när alla storlekar på teckensnittet frigörs och frigör endast formdata när alla teckensnitt som shapern stöder frigörs. När programmet är klart med ett format bör det anropa funktionen ScriptFreeCache för att frigöra skriptcachen för formatet.

För ScriptShape och ScriptPlaceär det giltigt för programmet att skicka en null-enhetskontext. Oftast lyckas anropet eftersom obligatoriska tabeller redan cachelagras. Om formningen eller placeringen kräver åtkomst till en enhetskontext returnerar ScriptShape eller ScriptPlace omedelbart med felkoden E_PENDING. Sedan måste programmet välja teckensnittet i enhetskontexten. För de flesta program hjälper detta prestanda genom att undvika upprepad förberedelse av en enhetskontextreferens med anrop till SelectObject-.

Använda Uniscribe-