diff --git a/overlay_experimental/Hook_Manager.h b/overlay_experimental/Hook_Manager.h index 8d84170..29a56b7 100644 --- a/overlay_experimental/Hook_Manager.h +++ b/overlay_experimental/Hook_Manager.h @@ -7,17 +7,11 @@ #include -/* - * - */ class Hook_Manager { friend class Base_Hook; protected: - // TODO: If needed, create a second vector with only the renderers hook - // Cause actually, a call to FoundRenderer will unhook everything registered except the renderer hook - // If you do that, you should consider moving the renderer hooks to its own class and keep this one generic ? std::set _hooks; Hook_Manager(); diff --git a/overlay_experimental/Renderer_Detector.cpp b/overlay_experimental/Renderer_Detector.cpp index 2d28f46..bc74d1a 100644 --- a/overlay_experimental/Renderer_Detector.cpp +++ b/overlay_experimental/Renderer_Detector.cpp @@ -120,33 +120,36 @@ HRESULT STDMETHODCALLTYPE Renderer_Detector::MyPresent(IDirect3DDevice9* _this, { Renderer_Detector& inst = Renderer_Detector::Inst(); Hook_Manager& hm = Hook_Manager::Inst(); + auto res = (_this->*_IDirect3DDevice9_Present)(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion); if (!inst.stop_retry()) { DX9_Hook::Inst()->start_hook(); } - return (_this->*_IDirect3DDevice9_Present)(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion); + return res; } HRESULT STDMETHODCALLTYPE Renderer_Detector::MyPresentEx(IDirect3DDevice9Ex* _this, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion, DWORD dwFlags) { Renderer_Detector& inst = Renderer_Detector::Inst(); Hook_Manager& hm = Hook_Manager::Inst(); + auto res = (_this->*_IDirect3DDevice9Ex_PresentEx)(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion, dwFlags); if (!inst.stop_retry()) { DX9_Hook::Inst()->start_hook(); } - return (_this->*_IDirect3DDevice9Ex_PresentEx)(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion, dwFlags); + return res; } BOOL WINAPI Renderer_Detector::MywglMakeCurrent(HDC hDC, HGLRC hGLRC) { Renderer_Detector& inst = Renderer_Detector::Inst(); Hook_Manager& hm = Hook_Manager::Inst(); + auto res = _wglMakeCurrent(hDC, hGLRC); if (!inst.stop_retry()) { OpenGL_Hook::Inst()->start_hook(); } - return _wglMakeCurrent(hDC, hGLRC); + return res; } void Renderer_Detector::HookDXGIPresent(IDXGISwapChain* pSwapChain)