Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Present hook работает, но изображение застывает. (FIXED)

how to доказать всем что не еблан
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
429
Реакции
126
получаю swap_chain из renderdevice + 0x178
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:
Expand Collapse Copy
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:
Expand Collapse Copy
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 не вызывается никогда.
я не знаю условий вызова этой функции в игре, чтобы понять правильность

есть идеи?
 
ресайз буфферс вызывается только при смене разрешения.

а для нормальной подсказки приложи куски кода по больше
 
Советую написать решение своей проблемы, если ты зафиксил.
Мало ли у кого-то такая же проблема будет.
у меня проблема была не с самим презентом, а в некорректном использовании polyhook.
так что вряд ли такое случится у кого либо, ибо я вообще 0 инфы в инете нашел
 
Назад
Сверху Снизу