Перейти к содержанию
Авторизация  
SweetAss1337

Библиотека для отрисовки GUI

Рекомендуемые сообщения

Имеется хук функции в графической библиотеке (glSwapBuffers). Таким образом я рисую простое гуи, но управлять им могу только кнопками, без обработки событий. Хочется использовать более сложную библиотеку типа ImGUI и ей подобных. Но на сколько я понял у меня не получится взять контекст игры. То есть opengl не предусматривает такой возможности вообще, а даже если и предусматривает то это так не работает. Могу ли я рисовать такие сложные вещи в чужом окне? Что для этого нужно? Я видел пример использования этой библиотеки в CS GO, но она может рисоваться как через directX так и через openGL на выбор, на сколько я знаю. 

 

 

 

68747470733a2f2f63646e2e61697878652e6e65

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, Xipho сказал:

wglGetCurrentContext пробовал?

 

Поддерживаю.

 

В OGLHook делал именно так: после хука glSwapBuffers сохранял текущий контекст через wglGetCurrentContext, после создавал новый через wglCreateContext, переключался на новый через wglMakeCurrent, рисовал всё что нужно и возвращал старый через wglMakeCurrent

Главное помнить, что если работать в отдельном потоке - нужно создавать контекст и на него. Я так создавал поток, в котором грузил текстуры параллельно с выполнением основного кода, но пришлось сращивать контексты через wglShareLists.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получилось отрисовать, действительно пришлось создавать свой контекст. Оказывается в imgui есть возможность рисовать без использования сторонних библиотек, только средствами чистого opengl, но возникает проблема с обработкой событий. Я нашел    Пример (ссылка почему-то открывается только через vpn)  с использованием хука SDL для перехвата событий, но в моей целевой игре не используется SDL, поэтому я просто использовал глобальный хук мыши и клавиатуры. 
Если кому надо:   так же имеется пример отрисовки на чистом opengl     https://github.com/ocornut/imgui/pull/1553/files

Изменено пользователем SweetAss1337
  • Понравилось 1
  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.