Я работаю над проектом, чтобы показать наложение на любые игры DirectX11. Теперь в некоторых играх DX11 в целом можно показать, а в некоторых - нет.
Я подключил DX11 API IDXGISwapChain :: Present () с помощью MS Detour. В функции Present () я настраиваю каждый конвейер, вызываю DrawIndex и ResourceCopy, обновляю мою текстуру наложения в память GPU, затем вызываю оригинальный Present, чтобы перенести задний буфер в передний буфер. Он отлично работает в некоторых играх, таких как Unigene и DIRT2, но не работает в некоторых других, таких как LostPlanet2 и DragonAge2.
Выполняя некоторые логи с перехватом всех функций DX11, я обнаружил интересную вещь - те, которые не работают, перед вызовом Present вызывают ResourceCopy и ResourceCopyRegion.
Как я уже говорил ранее, я также вызывал ResourceCopy в моем Present (). Это причина, почему это не работает? Как я могу обойти это?
Спасибо,
Marshall