104415d5c3
I had this issue where IDXGISwapChain::ResizeBuffers would fail in the hooks, causing games to crash when they resized their backbuffers because ResizeBuffers would return an 'invalid call' HRESULT value. In the ResizeBuffers documentation it says that it will only happen if a backbuffer currently has any outstanding references, but there's no way this would happen unless ResizeBuffers internally calls Present or vise versa. After ResizeBuffers has been called, the very first call to Present will somehow seemingly invalidate and/or destroy the current backbuffer. It's very strange, but that seems to be what's going on, at least for the game I was testing. So if you are performing a post-overlay capture, then you must ignore the capture on the very first call to Present. It's Microsoft's code so you can't really know what's going on, you just have to work around these strange issues seemingly in the dark. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
d3d1x_shaders.hpp | ||
d3d8-capture.cpp | ||
d3d9-capture.cpp | ||
d3d9-patches.hpp | ||
d3d10-capture.cpp | ||
d3d11-capture.cpp | ||
dxgi-capture.cpp | ||
dxgi-helpers.hpp | ||
gl-capture.c | ||
gl-decs.h | ||
graphics-hook.c | ||
graphics-hook.h |