From 1e056fd7ecd1ab5474dad05c5b641a6e86efe0f2 Mon Sep 17 00:00:00 2001 From: martell Date: Thu, 5 Feb 2015 07:21:42 +0000 Subject: [PATCH] win-capture: deal with a 32bit handle cast errors The HWND type is a void pointer, but HWND values are global and always 32bit despite, so casting to 32bit can cause cast warnings on actual good compilers like gcc via mingw. This change correctly handles the casting to 32bits without producing unwanted warnings or errors on mingw. --- plugins/win-capture/graphics-hook/d3d10-capture.cpp | 2 +- plugins/win-capture/graphics-hook/d3d11-capture.cpp | 2 +- plugins/win-capture/graphics-hook/d3d9-capture.cpp | 2 +- plugins/win-capture/graphics-hook/graphics-hook.c | 4 ++-- plugins/win-capture/graphics-hook/graphics-hook.h | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/win-capture/graphics-hook/d3d10-capture.cpp b/plugins/win-capture/graphics-hook/d3d10-capture.cpp index 06c8082a9..48b4f8357 100644 --- a/plugins/win-capture/graphics-hook/d3d10-capture.cpp +++ b/plugins/win-capture/graphics-hook/d3d10-capture.cpp @@ -510,7 +510,7 @@ static bool d3d10_shtex_init(HWND window) } if (!capture_init_shtex(&data.shtex_info, window, data.base_cx, data.base_cy, data.cx, data.cy, - data.format, false, (uint32_t)data.handle)) { + data.format, false, (uintptr_t)data.handle)) { return false; } diff --git a/plugins/win-capture/graphics-hook/d3d11-capture.cpp b/plugins/win-capture/graphics-hook/d3d11-capture.cpp index 4d3c9ee48..cc3e51fbc 100644 --- a/plugins/win-capture/graphics-hook/d3d11-capture.cpp +++ b/plugins/win-capture/graphics-hook/d3d11-capture.cpp @@ -516,7 +516,7 @@ static bool d3d11_shtex_init(HWND window) } if (!capture_init_shtex(&data.shtex_info, window, data.base_cx, data.base_cy, data.cx, data.cy, - data.format, false, (uint32_t)data.handle)) { + data.format, false, (uintptr_t)data.handle)) { return false; } diff --git a/plugins/win-capture/graphics-hook/d3d9-capture.cpp b/plugins/win-capture/graphics-hook/d3d9-capture.cpp index d37267d43..20c48b129 100644 --- a/plugins/win-capture/graphics-hook/d3d9-capture.cpp +++ b/plugins/win-capture/graphics-hook/d3d9-capture.cpp @@ -285,7 +285,7 @@ static bool d3d9_shtex_init(uint32_t cx, uint32_t cy, HWND window) } if (!capture_init_shtex(&data.shtex_info, window, cx, cy, data.cx, data.cy, data.dxgi_format, false, - (uint32_t)data.handle)) { + (uintptr_t)data.handle)) { return false; } diff --git a/plugins/win-capture/graphics-hook/graphics-hook.c b/plugins/win-capture/graphics-hook/graphics-hook.c index dc0cad919..8de9dfd97 100644 --- a/plugins/win-capture/graphics-hook/graphics-hook.c +++ b/plugins/win-capture/graphics-hook/graphics-hook.c @@ -581,7 +581,7 @@ static inline bool init_shared_info(size_t size) bool capture_init_shtex(struct shtex_data **data, HWND window, uint32_t base_cx, uint32_t base_cy, uint32_t cx, uint32_t cy, - uint32_t format, bool flip, uint32_t handle) + uint32_t format, bool flip, uintptr_t handle) { if (!init_shared_info(sizeof(struct shtex_data))) { hlog("capture_init_shtex: Failed to initialize memory"); @@ -589,7 +589,7 @@ bool capture_init_shtex(struct shtex_data **data, HWND window, } *data = shmem_info; - (*data)->tex_handle = handle; + (*data)->tex_handle = (uint32_t)handle; global_hook_info->window = (uint32_t)window; global_hook_info->type = CAPTURE_TYPE_TEXTURE; diff --git a/plugins/win-capture/graphics-hook/graphics-hook.h b/plugins/win-capture/graphics-hook/graphics-hook.h index bb82dfddf..355e16ba0 100644 --- a/plugins/win-capture/graphics-hook/graphics-hook.h +++ b/plugins/win-capture/graphics-hook/graphics-hook.h @@ -49,7 +49,7 @@ extern bool rehook_gl(void); extern bool capture_init_shtex(struct shtex_data **data, HWND window, uint32_t base_cx, uint32_t base_cy, uint32_t cx, uint32_t cy, - uint32_t format, bool flip, uint32_t handle); + uint32_t format, bool flip, uintptr_t handle); extern bool capture_init_shmem(struct shmem_data **data, HWND window, uint32_t base_cx, uint32_t base_cy, uint32_t cx, uint32_t cy, uint32_t pitch, uint32_t format, bool flip);