Jelajahi Sumber

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 tahun lalu
induk
melakukan
87f5bd6e9f
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  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,