-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В кратце: сабж. При alt+tab фризится картинка игры. Такое происходит только в fullscreen'e.
На unknowncheats(not реклама) нашёл тему такую же. Вывод: проблема с Reset hook'ом. Что конкретно не так - я хз. Менял уже всё что возможно.
Base: EmuSDK
SDK.cpp:
SDK.h:
Сам Hook:
На unknowncheats(not реклама) нашёл тему такую же. Вывод: проблема с Reset hook'ом. Что конкретно не так - я хз. Менял уже всё что возможно.
Base: EmuSDK
SDK.cpp:
Код:
if (device)
{
CVMTHookManager* hdevice = new CVMTHookManager((PDWORD*)device);
oEndScene = (EndSceneFn)(hdevice->HookMethod((DWORD)HookManager::EndScene, 42));
oReset = (ResetFn)(hdevice->HookMethod((DWORD)HookManager::Reset, 16));
oWndProc = (WNDPROC)SetWindowLongA(g_Globals::hwndWindow, GWL_WNDPROC, (LONG_PTR)HookManager::WndProc);
}
Код:
using EndSceneFn = HRESULT(__stdcall*)(IDirect3DDevice9* device);
extern EndSceneFn oEndScene;
using ResetFn = HRESULT(__stdcall*)(IDirect3DDevice9* device, D3DPRESENT_PARAMETERS* pp);
extern ResetFn oReset;
namespace HookManager
{
extern HRESULT __stdcall EndScene(IDirect3DDevice9* pDevice);
extern HRESULT __stdcall Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
extern LRESULT __stdcall WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
}
Код:
HRESULT __stdcall HookManager::Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
if(!initialized)
return oReset(pDevice, pPresentationParameters);
ImGui_ImplDX9_InvalidateDeviceObjects();
auto res = oReset(pDevice, pPresentationParameters);
ImGui_ImplDX9_CreateDeviceObjects();
return res;
}