В настоящее время я слежу за учебным уроком 43 NeHe (http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=43). Код работает удовлетворительно только для английского текста, а не для языков Unicoded. К счастью, я перешел по ссылке с урока 43 NeHe на http://www.cs.northwestern.edu/~sco590/fonts_tutorial.html и нашел другой идентичный учебный пример с единственным отличием: он использует w_char, и сайт утверждает, что вы можете работать на языке, отличном от английского.
Итак, я попробую:
freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);
функция print пространства имен freetype имеет 4-й аргумент в виде * const unsigned short **, так что я набрал его. Я также поставил L перед строкой в двойных кавычках для длинных символов и добавил несколько азиатских символов для тестирования.
В результате весь английский текст может отображаться просто отлично, но все тайские символы становятся «[] B [] I [] 5H [] 8». [] - квадратные коробки. Из того, что я понимаю, это означает, что шрифт не имеет указанного языка, поэтому я попробовал другие шрифты, но все другие тайские шрифты выдают те же квадратные рамки. Для японского шрифта это то же самое. Все коробки вместе с английскими символами рядом с ними. Подстрока öáæé отображается без проблем.
Я что-то забыл здесь? Как мы можем отобразить не английский язык Unicode здесь?