____ _____ ____ ____ __ __ __ ____ ______ _
/ __ \__ // __ \/ __ \ / / / /___ ____ / /__ / _/___ ___ / ____/_ __(_)
/ / / //_ </ / / / /_/ / / /_/ / __ \/ __ \/ //_/ / // __ `__ \/ / __/ / / / /
/ /_/ /__/ / /_/ /\__, / / __ / /_/ / /_/ / ,< _/ // / / / / / /_/ / /_/ / /
/_____/____/_____//____/ /_/ /_/\____/\____/_/|_| /___/_/ /_/ /_/\____/\__,_/_/
D3D9 Hook with ImGui integration (x86 / x64)
Make DirectX 9 internal menu with ImGui
(Resize & Fullscreen support)
D3D9 Hook with ImGui integration written in C++, works on x86 and x64 with all librairies and includes.
- Handle window resize
- DLL unload itself
- Handler external unload
- Handle fullscreen change
This use the dummy device technique to retrieve the virtual method table of DirectX 9.
This project use MS Detours library for hooking and obviously DirectX 9 SDK.
MS Detours library is already include in the project folder, but if you don't have DirectX SDK you can download it here.
Note
Make sure that DXSDK_DIR is declared in your environment variables.
To see your environment variables :
Settings --> System --> About --> System Advanced Settings --> Environment Variables
- Open the solution file (.sln).
- Build the project in Release (x86 or x64)
Every configuration in x86 / x64 (Debug and Realese) are already configured with librairies and includes.
You can hook every functions of DirectX 9 by changing the virtual function index (in Hook.cpp) :
Here I hook EndScene Function.
oEndScene = (tEndScene)d3d9Device[42];
All functions index of DirectX 9 are here.
Demo.mp4
- @liyunlong23 - Fix crash when changing resolution.