Partilhar via


Usando motores de modelagem

O Uniscribe usa vários mecanismos de modelagem que contêm o conhecimento de layout para scripts específicos. Ele também utiliza o motor de modelação de layout OpenType para gerir funcionalidades de script específicas da fonte, como geração de glifos, medição de extensão e suporte à quebra de palavras. O Uniscribe gerencia a reordenação de caracteres bidirecionais usando o algoritmo bidirecional Unicode e entende formatos de fonte de layout não-OpenType para formatação árabe, hebraica e tailandesa.

Como os intervalos de pontos de código exatos atribuídos a cada mecanismo de modelagem podem variar, os números de script não são publicados, com exceção de SCRIPT_UNDEFINED. No entanto, seu aplicativo pode testar os atributos de scripts chamando a funçãoScriptGetProperties, que acessa a tabela de propriedades de script global. O aplicativo pode usar as propriedades de script global para ajudar a combinar suas próprias regras de layout com as divisões de mecanismo de modelagem necessárias.

O aplicativo acessa um mecanismo de modelagem com uma chamada para a função ScriptShape. Todos os mecanismos complexos de modelagem de script, os mecanismos de modelagem de dígitos e os mecanismos de modelagem ASCII validam a fonte indicada na alça de contexto do dispositivo antes de modelar. Scripts complexos devem ser moldados usando o script retornado pela função ScriptItemize para serem legíveis. Outros trechos permanecem legíveis se formatados com SCRIPT_UNDEFINED especificado no membro do eScript da estrutura SCRIPT_ANALYSIS, embora possam perder a qualidade tipográfica.

ScriptShape retorna 0 se for bem-sucedido ou USP_E_SCRIPT_NOT_IN_FONT se a fonte fornecida pelo aplicativo não contiver glifos ou tabelas de formatação suficientes. Se o aplicativo especificar SCRIPT_UNDEFINED e alguns caracteres não forem suportados pela fonte, a função ainda terá êxito. Nesse caso, o aplicativo deve verificar o buffer de saída do glifo quanto à presença de glifos ausentes. Para estratégias para lidar com glifos ausentes, consulte Usando o fallback de fonte.

Usando o Uniscribe