Войти
IrrlichtФорум

Русский шрифт

Страницы: 1 2 3 4 5 Следующая »
#0
13:22, 30 мая 2006

Кому-нибудь удалось написать с помощью IGUIFont по русски? Там используется юникод, то есть по идее можно писать на любом языке, но утилитка для генерации картинки шрифта просто физически не доходит до кодов русских букв. Перекомпиляция генератора шрифтов с изменением кодов (чтобы на картинке появился русский шрифт ничего не дала - шрифт перестал грузиться движком.


#1
23:53, 30 мая 2006

использую CGUITTFont с http://irrlicht.kytron.com
он совместим с IGUIFont

#2
11:29, 31 мая 2006

Andrushka
Пасиба, то что надо

#3
22:04, 4 июня 2006

Если у кого проблеммы с вводом русского (или какого другого) текста, то вот солюшн:
В исходниках движка в файле CIrrDeviceWin32.cpp на примерно 200-ой строчке меняем

WORD KeyAsc=0;
на
WCHAR KeyUni=0;
ниже строчку
ToAscii(wParam,lParam,allKeys,&KeyAsc,0);
меняем на
ToUnicode(wParam,lParam,allKeys,&KeyUni,1,0);
пересобираем библиотеку, ложим в нужное место либу и dll (а может можно и просто dll...) и радуемся:)

#4
18:57, 5 июня 2006

опять пересобирать ? надоело... CGUITTFont рулит

#5
11:18, 6 июня 2006

.::jimon::.
Ты попробуй создать IGUIEditBox и что-нибудь там написать на руссом с тем же CGUITTFont

#6
0:03, 21 июня 2006

the_siv настчет твоего решения...Считаешь достаточно обрабатывать только нажатие?(WM_KeyDown)
И еще по идее должно выдать ошибку,т.к. ты заменяешь название переменной KeyAsk не существует,а ниже строчка:
event.KeyInput.Char = KeyAsc; //KeyAsc >= 0 ? KeyAsc : 0;

#7
2:41, 21 июня 2006

12345
По хорошему надо и при WM_KEYUP такие же исправления внести, но ввод текста и так будет работать потому что тому же едитбоксу только нажатия нужны... Но лучше тоже исправить, это да :)
>>И еще по идее должно выдать ошибку
Ошибку-то почему? Там просто будет каст отрицательного числа в unsigned short (wchar_t), то-есть получится большое положительное число, в итоге получим иероглиф... но такого произойти не должно, а KeyAsc >= 0 ? KeyAsc : 0; этого не исправит, за вместо иероглифа получим L'\0' и не понятно что ещё лучше, потому что тот же едитбокс прибавляет полученные символы (типа wchar_t) в уже имеющуюся строку, а L'\0' - это признак конца строки, то-есть после ошибочного символа мы ничего не увидим, даже если потом будем вводить не ошибочные символы...

#8
10:10, 21 июня 2006

Будем пробовать :)

#9
13:36, 21 июня 2006

скомпилил я двиг-как я и сказал VC 6 выдал ошибочку,KeyAsc несуществует) Ну да ладно просто CHAR KeyAsc=0; усе скомпилилось,но при попытке использования длл-ки вылетает...

#10
14:26, 21 июня 2006

12345
а где это у тебя KeyAsc используется-то? ты же его на WCHAR KeyUni=0; везде поменял

#11
17:11, 21 июня 2006

the_siv
line:208 or 229
У тебя работает норм?

#12
17:52, 21 июня 2006
event.KeyInput.Char = KeyUni;
Так сделал? Ну или с проверкой на нуль будет:
event.KeyInput.Char = KeyUni>= 0 ? KeyUni: 0;
Там больше KeyAsc нигде и не используется...
#13
17:53, 21 июня 2006

Хотя это тупость )) на нуль здесь проверять, KeyUni ведь unsigned..

#14
19:00, 21 июня 2006

the_siv
event.KeyInput.Char = KeyUni;
Ну по всей видимости если так сделать то будет переполнение.
char=1 байт wchar=2 байта насколько я помню... Так что не выход.
Так у тебя то работает? Хотю длл-ку с либ файлом...

Страницы: 1 2 3 4 5 Следующая »
IrrlichtФорум

Тема в архиве.