mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-27 05:04:01 +08:00
Fixed memory leak
This commit is contained in:
parent
42a22dd4bb
commit
cd8c5fc2ea
@ -12,6 +12,7 @@
|
||||
#include <Windows.h>
|
||||
|
||||
Base_Hook::Base_Hook():
|
||||
_library(nullptr),
|
||||
_hooked(false)
|
||||
{}
|
||||
|
||||
|
@ -12,6 +12,7 @@ DX10_Hook* DX10_Hook::_inst = nullptr;
|
||||
|
||||
bool DX10_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
if (!Windows_Hook::Inst().start_hook())
|
||||
@ -63,12 +64,12 @@ bool DX10_Hook::start_hook()
|
||||
else
|
||||
{
|
||||
PRINT_DEBUG("Failed to hook DirectX 10\n");
|
||||
return false;
|
||||
res = false;
|
||||
}
|
||||
if(pDevice)pDevice->Release();
|
||||
if(pSwapChain)pSwapChain->Release();
|
||||
}
|
||||
return true;
|
||||
return res;
|
||||
}
|
||||
|
||||
void DX10_Hook::resetRenderState()
|
||||
|
@ -22,6 +22,7 @@ HRESULT GetDeviceAndCtxFromSwapchain(IDXGISwapChain* pSwapChain, ID3D11Device**
|
||||
|
||||
bool DX11_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
if (!Windows_Hook::Inst().start_hook())
|
||||
@ -73,13 +74,13 @@ bool DX11_Hook::start_hook()
|
||||
else
|
||||
{
|
||||
PRINT_DEBUG("Failed to hook DirectX 11\n");
|
||||
return false;
|
||||
res = false;
|
||||
}
|
||||
|
||||
if(pDevice) pDevice->Release();
|
||||
if(pSwapChain) pSwapChain->Release();
|
||||
}
|
||||
return true;
|
||||
return res;
|
||||
}
|
||||
|
||||
void DX11_Hook::resetRenderState()
|
||||
|
@ -14,6 +14,7 @@ DX12_Hook* DX12_Hook::_inst = nullptr;
|
||||
|
||||
bool DX12_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
if (!Windows_Hook::Inst().start_hook())
|
||||
@ -79,7 +80,7 @@ bool DX12_Hook::start_hook()
|
||||
else
|
||||
{
|
||||
PRINT_DEBUG("Failed to hook DirectX 12\n");
|
||||
return false;
|
||||
res = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -89,7 +90,7 @@ bool DX12_Hook::start_hook()
|
||||
if (pCommandQueue) pCommandQueue->Release();
|
||||
if (pDevice) pDevice->Release();
|
||||
}
|
||||
return true;
|
||||
return res;
|
||||
}
|
||||
|
||||
void DX12_Hook::resetRenderState()
|
||||
|
@ -14,6 +14,7 @@ DX9_Hook* DX9_Hook::_inst = nullptr;
|
||||
|
||||
bool DX9_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
if (!Windows_Hook::Inst().start_hook())
|
||||
@ -60,13 +61,13 @@ bool DX9_Hook::start_hook()
|
||||
else
|
||||
{
|
||||
PRINT_DEBUG("Failed to DirectX 9\n");
|
||||
return false;
|
||||
res = false;
|
||||
}
|
||||
|
||||
if(pDeviceEx)pDeviceEx->Release();
|
||||
if(pD3D)pD3D->Release();
|
||||
}
|
||||
return true;
|
||||
return res;
|
||||
}
|
||||
|
||||
void DX9_Hook::resetRenderState()
|
||||
|
@ -16,6 +16,7 @@ OpenGL_Hook* OpenGL_Hook::_inst = nullptr;
|
||||
|
||||
bool OpenGL_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
if (!Windows_Hook::Inst().start_hook())
|
||||
@ -46,7 +47,7 @@ bool OpenGL_Hook::start_hook()
|
||||
PRINT_DEBUG("Failed to hook OpenGL\n");
|
||||
/* Problem: glewInit failed, something is seriously wrong. */
|
||||
PRINT_DEBUG("Error: %s\n", glewGetErrorString(err));
|
||||
return false;
|
||||
res = false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -37,6 +37,7 @@ HWND GetGameWindow()
|
||||
|
||||
bool Windows_Hook::start_hook()
|
||||
{
|
||||
bool res = true;
|
||||
if (!_hooked)
|
||||
{
|
||||
GetRawInputBuffer = ::GetRawInputBuffer;
|
||||
@ -51,7 +52,7 @@ bool Windows_Hook::start_hook()
|
||||
|
||||
_hooked = true;
|
||||
}
|
||||
return true;
|
||||
return res;
|
||||
}
|
||||
|
||||
void Windows_Hook::resetRenderState()
|
||||
@ -171,7 +172,7 @@ Windows_Hook::Windows_Hook() :
|
||||
GetRawInputBuffer(nullptr),
|
||||
GetRawInputData(nullptr)
|
||||
{
|
||||
|
||||
//_library = LoadLibrary(DLL_NAME);
|
||||
}
|
||||
|
||||
Windows_Hook::~Windows_Hook()
|
||||
@ -179,6 +180,8 @@ Windows_Hook::~Windows_Hook()
|
||||
PRINT_DEBUG("Windows Hook removed\n");
|
||||
|
||||
resetRenderState();
|
||||
|
||||
//FreeLibrary(reinterpret_cast<HMODULE>(_library));
|
||||
}
|
||||
|
||||
Windows_Hook& Windows_Hook::Inst()
|
||||
|
Loading…
Reference in New Issue
Block a user