Browse Source

win-capture/graphics-hook: Fix wrong HWND

Game capture assumes the top-level ancestor HWND, not a child HWND.
This fixes bugs such as the VLC window not capturing anymore due to the
fact that the capture HWND of VLC is a child window of the main VLC
window and not the main VLC window itself.
jp9000 5 years ago
parent
commit
87f5bd6e9f
1 changed files with 3 additions and 1 deletions
  1. 3 1
      plugins/win-capture/graphics-hook/graphics-hook.c

+ 3 - 1
plugins/win-capture/graphics-hook/graphics-hook.c

@@ -506,8 +506,10 @@ static inline void unlock_shmem_tex(int id)
 static inline bool init_shared_info(size_t size, HWND window)
 {
 	wchar_t name[64];
+	HWND top = GetAncestor(window, GA_ROOT);
+
 	swprintf(name, 64, SHMEM_TEXTURE "_%" PRIu64 "_%u",
-		 (uint64_t)(uintptr_t)window, ++shmem_id_counter);
+		 (uint64_t)(uintptr_t)top, ++shmem_id_counter);
 
 	shmem_file_handle = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL,
 					       PAGE_READWRITE, 0, (DWORD)size,