Multiple APIs may be set up to capture without being initialized in graphics-hook when multiple threads are sending present calls. This just prevents those invalid captures from completing.
@@ -333,7 +333,7 @@ void d3d10_capture(void *swap_ptr, void *backbuffer_ptr)
if (capture_should_init()) {
d3d10_init(swap);
}
- if (capture_ready()) {
+ if (data.handle != nullptr && capture_ready()) {
ID3D10Resource *backbuffer;
hr = dxgi_backbuffer->QueryInterface(__uuidof(ID3D10Resource), (void **)&backbuffer);
@@ -301,7 +301,7 @@ void d3d11_capture(void *swap_ptr, void *backbuffer_ptr)
d3d11_init(swap);
ID3D11Resource *backbuffer;
hr = dxgi_backbuffer->QueryInterface(__uuidof(ID3D11Resource), (void **)&backbuffer);
@@ -315,7 +315,7 @@ void d3d12_capture(void *swap_ptr, void *)
d3d12_init(swap);
d3d12_shtex_capture(swap);
@@ -543,7 +543,7 @@ static void d3d9_capture(IDirect3DDevice9 *device, IDirect3DSurface9 *backbuffer
d3d9_init(device);
if (data.device != device) {
d3d9_free();
return;
@@ -13,7 +13,7 @@
#define HOOK_VER_MAJOR 1
#define HOOK_VER_MINOR 8
-#define HOOK_VER_PATCH 4
+#define HOOK_VER_PATCH 5
#ifndef STRINGIFY
#define STRINGIFY(s) #s