Delen via


Vormgevingsengines gebruiken

Uniscribe maakt gebruik van meerdere vormgevingsengines die de indelingskennis voor bepaalde scripts bevatten. Het maakt ook gebruik van de OpenType-indelingsvormingsengine voor het verwerken van lettertypespecifieke scriptfuncties, zoals het genereren van glyph, het meten van gebieden en ondersteuning voor woordafbreking. Uniscribe beheert het opnieuw ordenen van bidirectionele tekens met behulp van het Unicode bidirectionele algoritme, en begrijpt niet-OpenType lettertype-indelingen voor de vormgeving van Arabisch, Hebreeuws en Thais.

Aangezien de exacte codepuntbereiken die aan elke vormgevingsengine zijn toegewezen, kunnen verschillen, worden scriptnummers niet gepubliceerd, met uitzondering van SCRIPT_UNDEFINED. Uw toepassing kan echter de kenmerken van scripts testen door de ScriptGetProperties-functie aan te roepen, die toegang heeft tot de tabel met globale scripteigenschappen. De toepassing kan de eigenschappen van het globale script gebruiken om te helpen bij het combineren van zijn eigen lay-outregels met de vereiste onderverdelingen van de vormgevingsengine.

De toepassing heeft toegang tot een vormgevingsengine met een aanroep naar de ScriptShape-functie. Alle complexe scriptvormingsengines, de engine voor het vormgeven van cijfers en de ASCII-vormgevingsengines valideren het lettertype dat wordt aangegeven in de contextgreep van het apparaat voordat ze worden vormgegeven. Complexe scripts moeten worden vormgegeven met behulp van het script dat wordt geretourneerd door de ScriptItemize-functie om leesbaar te zijn. Andere uitvoeringen blijven leesbaar als ze worden vormgegeven met SCRIPT_UNDEFINED dat is gespecificeerd in het eScript lid van de SCRIPT_ANALYSIS structuur, hoewel ze mogelijk aan typografische kwaliteit kunnen inboeten.

ScriptShape retourneert 0 als dit lukt, of USP_E_SCRIPT_NOT_IN_FONT als het lettertype dat door de toepassing wordt geleverd, niet voldoende glyphen of shaping-tabellen bevat. Als de toepassing SCRIPT_UNDEFINED opgeeft en sommige tekens niet worden ondersteund door het lettertype, slaagt de functie nog steeds. In dit geval moet de toepassing de uitvoerbuffer van de glyph scannen op de aanwezigheid van ontbrekende glyphs. Voor strategieën om te gaan met ontbrekende glyphs, zie Lettertypefallback gebruiken in .

Uniscribe- gebruiken