Don't free objects with shutdown

Some games don't like to free the DX objects after the game has shut down.
merge-requests/28/head
Nemirtingas 2019-08-21 21:52:08 +02:00
parent 4db2b6528c
commit 42a22dd4bb
3 changed files with 36 additions and 3 deletions

View File

@ -194,7 +194,17 @@ DX10_Hook::~DX10_Hook()
{ {
PRINT_DEBUG("DX10 Hook removed\n"); PRINT_DEBUG("DX10 Hook removed\n");
resetRenderState(); if (initialized)
{
mainRenderTargetView->Release();
//ImGui_ImplDX10_Shutdown();
ImGui_ImplDX10_InvalidateDeviceObjects();
Windows_Hook::Inst().resetRenderState();
ImGui::DestroyContext();
initialized = false;
}
FreeLibrary(reinterpret_cast<HMODULE>(_library)); FreeLibrary(reinterpret_cast<HMODULE>(_library));

View File

@ -212,7 +212,18 @@ DX11_Hook::~DX11_Hook()
{ {
PRINT_DEBUG("DX11 Hook removed\n"); PRINT_DEBUG("DX11 Hook removed\n");
resetRenderState(); if (initialized)
{
mainRenderTargetView->Release();
pContext->Release();
//ImGui_ImplDX11_Shutdown();
ImGui_ImplDX11_InvalidateDeviceObjects();
Windows_Hook::Inst().resetRenderState();
ImGui::DestroyContext();
initialized = false;
}
FreeLibrary(reinterpret_cast<HMODULE>(_library)); FreeLibrary(reinterpret_cast<HMODULE>(_library));

View File

@ -243,7 +243,19 @@ DX12_Hook::~DX12_Hook()
{ {
PRINT_DEBUG("DX12 Hook removed\n"); PRINT_DEBUG("DX12 Hook removed\n");
resetRenderState(); if (initialized)
{
pCmdAlloc->Release();
pCmdList->Release();
pDescriptorHeap->Release();
//ImGui_ImplDX12_Shutdown();
ImGui_ImplDX12_InvalidateDeviceObjects();
Windows_Hook::Inst().resetRenderState();
ImGui::DestroyContext();
initialized = false;
}
FreeLibrary(reinterpret_cast<HMODULE>(_library)); FreeLibrary(reinterpret_cast<HMODULE>(_library));