Alt + Tab == freeze

Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В кратце: сабж. При alt+tab фризится картинка игры. Такое происходит только в fullscreen'e.
На 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);
    }
SDK.h:
Код:
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);
}
Сам Hook:
Код:
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;
}
 
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
С концами. Картинка намертво замирает.
Перезагружай девайс при заходе в игру.
 
Код:
 long __stdcall hkReset(IDirect3DDevice9* device, D3DPRESENT_PARAMETERS* pPresentationParameters)
    {
        auto oReset = direct3d_hook.get_original<Reset>(index::Reset);
        Visuals::DestroyFonts();
        Menu::Get().OnDeviceLost();
        auto hr = oReset(device, pPresentationParameters);
        if(hr >= 0) {
            Menu::Get().OnDeviceReset();
            Visuals::CreateFonts();
        }
        return hr;
    }
С CSGOSimple. Там вроде работает.
 
Сверху Снизу