Condividi tramite


Uso dei motori di modellazione

Uniscribe usa più motori di forma che contengono la conoscenza del layout per determinati script. Sfrutta anche il motore di modellazione del layout OpenType per gestire le funzionalità di script specifiche del tipo di carattere, ad esempio la generazione del glifo, la misurazione dell'estensione e il supporto per l'interruzione delle parole. Uniscribe gestisce la riordinazione dei caratteri bidirezionali usando l'algoritmo bidirezionale Unicode e comprende i formati di carattere di layout non OpenType per il formato arabo, ebraico e thai.

Poiché gli intervalli di punti di codice esatto assegnati a ogni motore di forma possono variare, i numeri di script non vengono pubblicati, ad eccezione di SCRIPT_UNDEFINED. Tuttavia, l'applicazione può testare gli attributi degli script chiamando la funzione ScriptGetProperties , che accede alla tabella delle proprietà dello script globale. L'applicazione può usare le proprietà dello script globale per combinare le proprie regole di layout con le divisioni del motore di modellazione necessarie.

L'applicazione accede a un motore di forma con una chiamata alla funzione ScriptShape . Tutti i motori di modellazione dello script complessi, i motori di modellazione delle cifre e i motori di modellazione ASCII convalidano il tipo di carattere indicato nell'handle del contesto del dispositivo prima di modellare. Gli script complessi devono essere modellati usando lo script restituito dalla funzione ScriptItemize per essere leggibili. Altre esecuzioni rimangono leggibili se modellate con SCRIPT_UNDEFINED specificato nel membro eScript della struttura SCRIPT_ANALYSIS , anche se potrebbero perdere la qualità tipografica.

ScriptShape restituisce 0 se ha esito positivo o USP_E_SCRIPT_NOT_IN_FONT se il tipo di carattere fornito dall'applicazione non contiene glifi o tabelle di forma sufficienti. Se l'applicazione specifica SCRIPT_UNDEFINED e alcuni caratteri non sono supportati dal tipo di carattere, la funzione ha ancora esito positivo. In questo caso, l'applicazione deve analizzare il buffer di output del glifo per la presenza di glifi mancanti. Per le strategie per gestire glifi mancanti, vedere Uso del fallback del tipo di carattere.

Uso di Uniscribe