Реализовать overlay для opengl окна
Нужно написать 2 приложения на c++, которые общаются друг с другом реализуя IPC соединение.
1 приложение:
Внешний DLL, который будет устанавливаться в процесс игры. Внутри-игровой overlay - opengl hook (swapBuffers).
2 приложение:
NodeJS Addon, который даст нужное API для взаимодействия с 1 приложением через основное приложение на Nodejs. DLLInject, передача данных из окна игры на Opengl в основное приложение и обратно (Keyboard, Mouse input).
Что показывать в игре:
На стороне NodeJS приложения мы используем https://www.electronjs.org/ru/docs/latest/tutorial/offscreen-rendering. По сути - это обычное браузерное окно, в которое мы загружаем свое приложение. Каждый раз, когда рендерится фрейм этого окна, мы должны иметь возможность отправить Buffer в приложение 2, чтобы оно отправило их в приложение 1, а приложение 1 - отрендерило его на экране через swapBuffers хук.
Offscreen Rendering окно так же принимает Input, который позволяет взаимодействовать с контентом внутри окна.
Что-то похожее реализовано в этом гитхаб репозитории: https://github.com/hiitiger/goverlay, но есть следующие проблемы:
- Отсутствие поддержки Opengl (только DirectX)
- Слишком много лишнего внутри репозитория
Мы так же попытались сами реализовать подобный функционал, но среди нас только nodejs "разработчики" :)
Однако можем и нашими "наработками" поделиться, там реализован полностью dllInjector и opengl hook с использованием библиотеки minhook. Но все это - мягко скажем, не для продакшена.
Хотелось бы узнать стоимость и сроки выполнения подобного заказа, если это возможно