diff --git a/overlay_experimental/DX12_Hook.cpp b/overlay_experimental/DX12_Hook.cpp index 2b3ae13..5c8981b 100644 --- a/overlay_experimental/DX12_Hook.cpp +++ b/overlay_experimental/DX12_Hook.cpp @@ -58,9 +58,6 @@ void DX12_Hook::resetRenderState() void DX12_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain) { pSwapChain->GetDesc(&sc_desc); - - IDXGISwapChain3* pSwapChain3; - pSwapChain->QueryInterface(IID_PPV_ARGS(&pSwapChain3)); if (!initialized) { @@ -204,7 +201,7 @@ void DX12_Hook::loadFunctions(ID3D12CommandQueue* pCommandQueue, ID3D12GraphicsC { void** vTable; - vTable = *reinterpret_cast(pCommandList); + vTable = *reinterpret_cast(pCommandQueue); #define LOAD_FUNC(X) (void*&)X = vTable[(int)ID3D12CommandQueueVTable::X] LOAD_FUNC(ExecuteCommandLists); #undef LOAD_FUNC diff --git a/overlay_experimental/Renderer_Detector.cpp b/overlay_experimental/Renderer_Detector.cpp index a182899..3de8478 100644 --- a/overlay_experimental/Renderer_Detector.cpp +++ b/overlay_experimental/Renderer_Detector.cpp @@ -84,6 +84,8 @@ HRESULT STDMETHODCALLTYPE Renderer_Detector::MyIDXGISwapChain_Present(IDXGISwapC { Renderer_Detector& inst = Renderer_Detector::Inst(); Hook_Manager& hm = Hook_Manager::Inst(); + + auto res = (_this->*_IDXGISwapChain_Present)(SyncInterval, Flags); if (!inst.stop_retry()) { IUnknown* pDevice = nullptr; @@ -111,7 +113,7 @@ HRESULT STDMETHODCALLTYPE Renderer_Detector::MyIDXGISwapChain_Present(IDXGISwapC if (pDevice) pDevice->Release(); } - return (_this->*_IDXGISwapChain_Present)(SyncInterval, Flags); + return res; } HRESULT STDMETHODCALLTYPE Renderer_Detector::MyPresent(IDirect3DDevice9* _this, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) @@ -433,7 +435,7 @@ void Renderer_Detector::hook_dx12() }//if (pDevice != nullptr) }//if (D3D12CreateDevice != nullptr) }//if (library != nullptr) - if (pSwapChain != nullptr && pCommandList != nullptr) + if (pCommandQueue != nullptr && pCommandList != nullptr && pSwapChain != nullptr) { PRINT_DEBUG("Hooked IDXGISwapChain::Present to detect DX Version\n");