22 Commits

Author SHA1 Message Date
Nemirtingas
622c435cb7 Fixed typo in DX12 & reorder hook call.
Should call the Present function before hooking DX cause DX also hook Present even if the hook is disabled by Renderer_Detector before initializing the DX hook.
2019-08-27 17:40:44 +02:00
Nemirtingas
04847abeb7 Overlay & Hook cleanup. 2019-08-27 15:45:53 +02:00
Nemirtingas
44d583ee7d Added class Renderer_Detector.
Hook_Manager now only manages hooks.
Renderer_Detector is used to detect the game's renderer. There will be 2 version of it. 1 for windows and 1 for Linux.
2019-08-27 15:38:07 +02:00
Nemirtingas
9b178146c4 Cleaned a bit hooks and added sanity checks. 2019-08-26 19:36:07 +02:00
Nemirtingas
d0251b0b01 Some kind of DX12 hook 2019-08-26 16:46:56 +02:00
Nemirtingas
cd8c5fc2ea Fixed memory leak 2019-08-25 21:22:25 +02:00
Nemirtingas
42a22dd4bb Don't free objects with shutdown
Some games don't like to free the DX objects after the game has shut down.
2019-08-21 21:52:08 +02:00
Nemirtingas
5a0653d080 Refactor dx device creation
Find the game's window instead of using the foreground window.
2019-08-20 23:27:17 +02:00
Nemirtingas
8757f4a548 Fixed ressource leaks. 2019-08-19 19:51:35 +02:00
Nemirtingas
5893b69d1f Partially working DX12 overlay
DX12 hook seems ok, there are some bugs remaining.
ImGui setup for DX12 doesn't work.
2019-08-19 18:56:15 +02:00
Nemirtingas
ca0ef4380a Moved hooks calls and added hook retry
With that change, I no longer re-hook rendering functions as Hook_Manager::FoundRenderer removes all hooks and then we hook the true functions in the renderer specialization.
Added a retry count.
2019-08-18 17:12:57 +02:00
Nemirtingas
5b0306dccc Moved window hooks to its own class
Every class has a job. Overlay is to show an overlay not to hook windows functions.
Hook_Manager's job is to manage hooks and should not contain a reference to the overlay. (It should not contains any reference to directX or OpenGL either but I'll see that later... Maybe)
This makes the overlay code much cleaner and "could" be used in Linux as well.
2019-08-18 16:22:07 +02:00
Nemirtingas
f096a2d8a2 Use LoadLibrary instead of LoadModule
LoadLibrary increase the reference count to the library. So we make sure this library is still loaded when we shut down the hook.
2019-08-18 16:19:28 +02:00
Nemirtingas
5d4b4371f3 Fixed everything that I've forgot 2019-08-16 19:21:30 +02:00
Nemirtingas
d06fbba104 Added error handling when hook fails 2019-08-16 19:10:12 +02:00
Nemirtingas
40615d07a7 Reworked how renderers are hooked.
Some games doesn't initialise Steam before initalizing their Renderer (even if the doc says to) . So instead of waiting for the game to initialize it, hook to the rendering functions and deduce which implementation should be used.
2019-08-16 10:36:44 +02:00
Nemirtingas
4d3c355fcc Renammed hook_<renderer> to start_hook 2019-08-16 10:31:29 +02:00
Nemirtingas
2fe5e90294 Reworked booleans 2019-08-16 10:28:23 +02:00
Nemirtingas
d87760b78b Created a define to not compile overlay. 2019-08-14 15:09:57 +02:00
Nemirtingas
56b4e6a7c7 Added preprocessor exclusion for linux 2019-08-14 14:55:31 +02:00
Nemirtingas
631bcf9edf Updated hooks. 2019-08-01 15:47:43 +02:00
Nemirtingas
2ba8cae64e Added DirectX hooks
Warning: DX9 doesn't support resizing (TODO), DX12 has not beed tested and is not finished.
No OpenGL support for now.
2019-07-25 23:21:03 +02:00