how to доказать всем что не еблан
-
Автор темы
- #1
получаю swap_chain из renderdevice + 0x178
66 0F 7F 05 ? ? ? ? 66 0F 7F 0D ? ? ? ? 48 89 35
хукаю с помощью своей обертки над polyhook 2, но пробовал и MinHook
обе вариации работают, моя функция вызывает оригинал и изображение игры замирает, но звуки меню и тд есть
в это время функция present_hooked всё вызывается и вызывается.
при этом resize_buffers не вызывается никогда.
я не знаю условий вызова этой функции в игре, чтобы понять правильность
есть идеи?
66 0F 7F 05 ? ? ? ? 66 0F 7F 0D ? ? ? ? 48 89 35
хукаю с помощью своей обертки над polyhook 2, но пробовал и MinHook
long __stdcall present_hooked(IDXGISwapChain* swap_chain, unsigned int sync_interval, unsigned int flags) noexcept
MinHook:
swap_chain->init(g_interfaces->swap_chain);
swap_chain->hookAt(8, present_hooked);
swap_chain->hookAt(13, resize_buffers_hooked);
MH_EnableHook(MH_ALL_HOOKS);
....
// вызов оригинала
return g_hooks->swap_chain->CallOriginal<long, 8>(swap_chain, sync_interval, flags);
polyhook v2:
present->init_and_hook(g_interfaces->swap_chain, 8, present_hooked);
resize_buffers->init_and_hook(g_interfaces->swap_chain, 13, resize_buffers_hooked);
...
// вызов оригинала
return g_hooks->present->call_original(swap_chain, sync_interval, flags);
в это время функция present_hooked всё вызывается и вызывается.
при этом resize_buffers не вызывается никогда.
я не знаю условий вызова этой функции в игре, чтобы понять правильность
есть идеи?