![]() |
Страницы (2): « 1 [2] Показать все 30 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Экспорт функций из движка (https://hlfx.ru/forum/showthread.php?threadid=4303)
Пытаюсь сделать так, чтобы код символа получить, но он корректно получает символы только для цифр в верхней части клавиатуры. Этот же код в хуке простом для записи символов в файл в моём старом проекте работает. Где я ошибся?
1 | char scantoc(int vkc) |
2 | { |
3 | BYTE k[256]; |
4 | for (int i = 0; i < 256; i++) k[ i ] = GetKeyState(i); |
5 | WORD r = 0; |
6 | HKL h = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(),0)); |
7 | if ( ToAsciiEx(vkc,MapVirtualKeyEx(vkc,0,h),k,&r,0,h) ) return r; else return 0; |
8 |
9 | } |
Так и не смог побороть вышеназванную проблему, плюс хотелось бы комментариев по моему багрепорту.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Картинки я рисую через GL_QUAD с натянутой текстурой. А как ещё?
pglBind я уже не использую, вместо него - GL_Bind. Сбрасываю текстуру после рисования GL_Bind(GL_TEXTURE_2D,0). Всё равно глюки.
Про перевод символа - классическая задача на хуки клавиатуры. Как я понял, в HUD_KeyEvent передаётся сканкод клавиши - от 0 до 255. Кстати, я писал, вы внимания не обратили, что он ловит не все клавиши, а только те, которые есть в текущей таблице биндов, вроде как. Так вот, я его пытаюсь преобразовать в код символа, как указано выше. В хуке это работает. Тут - нет. Не понимаю, в чём причина.
1 | void GL_Bind( GLint tmu, GLenum texnum ) |
2 | { |
3 | gltexture_t *texture; |
4 |
5 | // missed texture ? |
6 | if( texnum <= 0 ) texnum = tr.defaultTexture; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Про Translatef - я затупил. Всё равно потом матрицу восстанавливаю, так что это не критично.
Про FillRGBA - невозможно нарисовать непрозрачный прямоугольник, да и со скруглениями в апи движка туго. Всё равно придётся использовать TRIANGLE_FAN для скруглённых углов.
Добавлено 19-03-2014 в 23:47:
Где лежит этот самый CL_CharEvent? В каком файле? Быстрай поиск по проекту ничего не дал.
Добавлено 19-03-2014 в 23:47:
Где лежит этот самый CL_CharEvent? В каком файле? Быстрый поиск по проекту ничего не дал.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
В вантузе 5.1/5.2 поиск тоже непредсказуемый. Особенно после установки офиса. Может найти слово "жуй" в .доках, а в исходникак злово "void" в упор не видеть. Ищите через ваши ИДЕ.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Я ищу в клиент.длл. Ладно, буду сам думать над этим вопросом.
Всмысле через SPR_Draw? Мне не спрайт рисовать. Мне надо нарисовать просто цветной прямоугольник. И как его на текстурах делать? Радиус углов-то может быть разный.
Я не те вопросы задаю, что ли? Вроде раньше спрашивал про вещи сложнее, а тут про ваш собственный движок спрашиваю, ответы как-то слабо применимы к реальности. После месяца методом тыка выяснено, что картинка рисуется нормально и не сбивает всё остальное по порядку отрисовки только при использовании GL_Bind(GL_TEXTURE0,index). Во всех остальных случаях ( GL_TEXTURE_2D и прочее ) она всё равно сбивает всё остальное. Так же - баг, либо просто в халфе нет непрозрачного pfnDrawChar. Ещё раз говорю, наверное, в третий уже раз.
Рисую белую непрозрачную подложку.
1 | pglLoadIdentity(); |
2 | pglTranslatef((float)x,(float)y,(float)0); |
3 | pglDisable(GL_TEXTURE_2D); |
4 | pglEnable( GL_BLEND ); |
5 | pglDisable( GL_ALPHA_TEST ); |
6 | pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); |
7 | pglColor4ub(255,255,255,255); |
8 | pglBegin(GL_QUADS); |
9 | pglVertex2f(0,h); |
10 | pglVertex2f(w,h); |
11 | pglVertex2f(w,0); |
12 | pglVertex2f(0,0); |
13 | pglEnd(); |
14 | pglEnable(GL_TEXTURE_2D); |
15 | pglLoadIdentity(); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Я отказался от транслейтф уже.
И про стейт-машину понимаю. Я все стейты вызываю синхронно. То что дисейблю - то енейблю в конце и наоборот.
Про GL_TEXTURE_2D - я всегда им пользовался. В ванильной халве, когда добавлял поддержку пнг, когда пробовал рисовать прицел на винтовке. Мне казалось, что это просто канал для текстуры, как и все остальные. В интернете все примеры для работы с текстурированием квада используют его. GL_TEXTURE0 я вообще нигде не видел, пока не стал копаться в ксаш-ХТ.
Могу выложить недописанный проект ( поскольку логику работы кода и вызовов описывать - страницы на две хватит ).
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 01:55. | Страницы (2): « 1 [2] Показать все 30 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024