![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Vizor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 9.3.2006 Репутация: нет Всего: нет |
Помогите пожалуйста вывести русский текст с использованием UNICODE. Желательно исходный код.
|
|||
|
||||
DigitalDummy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.4.2006 Где: В подвале шоколад ной фабрики. Репутация: нет Всего: 2 |
А что именно хотите узнать?
![]() |
|||
|
||||
Andreyexe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.4.2006 Репутация: нет Всего: нет |
Можна-можна здесь посмотри www.mirgames.ru |
|||
|
||||
DigitalDummy |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.4.2006 Где: В подвале шоколад ной фабрики. Репутация: нет Всего: 2 |
Надеюсь, Вы не против, если для ответа я приведу исходный код, который Вы написали мне в личном сообщении...
Что у Вас в нём не верно? Главная ошибка в том, что текст в формате Unicode отличается от текста формата ANSI тем, что имеет размер символа WORD (два байта), а не один! То есть, вариантов символов в Unicode тексте намного больше, чем 256! При этом, для вывода текста в OpenGL Вы создаёте набор только из 256 символов с помощью функции wglUseFontOutlines которого явно не хватит для того, чтобы отобразить все Unicode символы! Именно поэтому символы отображаются неправильно. Если Вам нужно использовать все возможные Unicode символы, то и создавать набор надо в количестве 65536 символов. Но, я бы не сказал, что это хороший выход. По-моему, для вывода текста лучше всего создавать только те символы, которые будут непосредственно использоваться вашей программой. Ну ладно... Раз уж Вы пошли таким путём, то самое быстрое решение для Вас, как мне кажется, таково: Во-первых, добавьте в свой код упращенный вариант функции для перевода Unicode-символа в ANSI-символ:
А в Вашем коде для вывода текста надо исправить функцию:
Кстати, я никогда не пользовался функцией glutBitmapCharacter, поэтому не знаю сможет ли она правильно вывести на экран char символ и, может быть, потребуется конверсия типа в параметре. Если же текст всё ещё будет выводиться с ошибкой, сообщите и я напишу Вам замену для функции glutBitmapCharacter не прибегая к GLUT функциям. Это сообщение отредактировал(а) DigitalDummy - 2.5.2006, 22:21 |
||||||
|
|||||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |