Pergunta

Atualmente, estou seguindo NeHe lição tutorial 43 ( http: // nehe.gamedev.net/data/lessons/lesson.asp?lesson=43 ). O código funciona satisfatoriamente apenas para texto em Inglês, línguas não Unicoded. Felizmente, eu seguir um link de NeHe lição 43 a http: //www.cs. northwestern.edu/~sco590/fonts_tutorial.html e encontrou uma outra amostra idêntica tutorial com uma única diferença:. ele usa w_char, e as reivindicações do site que podem ser executados em um idioma diferente do Inglês

Então, eu dar-lhe uma tentativa:

freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);

A função print do namespace freetype tem o quarto argumento como * const unsigned short ** então eu typecasted-lo. Eu também colocar um L na frente da cadeia entre aspas duplo para caracteres e colocar em alguns caracteres asiáticos para testar propósito.

O resultado é todo o texto lata Inglês exibido muito bem, mas todos os caracteres tailandeses se tornar "[] B [] I [] 5H [] 8". O [] são caixas quadradas. Pelo que eu entendo, isso implica que a fonte não tem o idioma especificado, então eu tentei outras fontes, mas todas as outras fontes tailandesas dar essas mesmas caixas quadradas. Para a fonte japonesa, é o mesmo. Todas as caixas juntamente com alguns caracteres do idioma inglês ao lado deles. O öáæé substring está sendo processado muito bem sem qualquer problema.

Am I esquecendo alguma coisa aqui? Como podemos exibir linguagem não-Inglês Unicode aqui?

Foi útil?

Solução

Felizmente, o autor adicionou uma versão modificada de seu tutorial em seu website (especificada na questão) e usa wchar_t (na versão original, os usos autor * const curto não assinado ** como um argumento na função de impressão ), que permite idiomas diferentes do inglês.

Outras dicas

Parece que print () na lição 43 não é sequer perto Unicode capaz. Todos NeHe está fazendo é criar 256 listas de exibição para os primeiros 256 caracteres ASCII, não aceitando uma string UTF8 e convertê-lo para UTF32 para FreeType.

este em C ++ tem funcionado muito bem para mim.

Além disso, pegue uma cópia do GNU Unifont para se certificar de que você tem glifos para todos os BMP .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top