Наложение на полноэкранное 3D-приложение
Создан Gist с полным кодом here
Это довольно эзотерическое windows-programming искусство, и есть несколько windows-application способов сделать это. Я предпочитаю windows-applications то, что называется Direct3D Wrapper. Прошло windows-applications много лет с тех пор, как directx я сделал это, но однажды directx я сделал это с игрой. Возможно, я windows-programming упустил некоторые детали, но windows-applications я просто надеюсь проиллюстрировать windows идею.
Все игры Direct3D9 должны windows-applications вызывать IDirect3DDevice9::EndScene после того, как windows-application экран отрисован и готов к overlays отрисовке. Так что теоретически fullscreen мы можем поместить в EndScene
собственный overlays код, который рисует то, что overlay мы хотим, поверх игры. Мы windows делаем это, создавая для fullscreen игры класс, который выглядит windows-applications как IDirect3DDevice9, но windows на самом деле это просто windows-application оболочка, которая перенаправляет overlay все вызовы функций реальному windows классу. Итак, теперь в нашем windows-applications пользовательском классе наша overlays функция-оболочка для EndScene
выглядит overlays так:
HRESULT IDirect3DDevice9::EndScene()
{
// draw overlays here
realDevice.EndScene();
}
Затем мы компилируем directx его в DLL с именем d3d9.dll overlay и помещаем в каталог исполняемого windows-programming файла игры. Настоящий d3d9.dll windows-application должен находиться в папке directx / system32, но игра сначала directx просматривает текущий каталог, а opengl вместо этого загружает наш. Как fullscreen только игра загружается, она windows-applications использует нашу DLL для создания overlays экземпляра нашего класса-оболочки. И directx теперь каждый раз, когда windows-application вызывается EndScene
, выполняется windows-applications наш код, чтобы отрисовывать directx на экране то, что мы хотим.
Думаю, вы directx можете попробовать тот же overlays принцип с OpenGL. Но я думаю, что overlays некоторые современные игры opengl пытаются это предотвратить, чтобы windows-programming предотвратить подделку.
windows
opengl
directx
overlay
fullscreen
Наложение на полноэкранное 3D-приложение
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.