From 3f35e6525323d8f51a670dd4b3eb970664beef5e Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Fri, 24 Apr 2026 15:33:03 -0700 Subject: [PATCH] wgl: Use an hwnd xor hdc for framebuffers It seems maybe hdcs can get recycled? Fixes: 28058221 ("wgl: Support contexts created from non-window DCs") Part-of: --- src/gallium/frontends/wgl/stw_context.c | 3 ++- src/gallium/frontends/wgl/stw_framebuffer.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/frontends/wgl/stw_context.c b/src/gallium/frontends/wgl/stw_context.c index 14fab3d9cec..f0f543c243b 100644 --- a/src/gallium/frontends/wgl/stw_context.c +++ b/src/gallium/frontends/wgl/stw_context.c @@ -546,8 +546,9 @@ get_unlocked_refd_framebuffer_from_dc(HDC hDC) * those here. */ int iPixelFormat = stw_pixelformat_guess(hDC); + HWND hWnd = WindowFromDC(hDC); if (iPixelFormat) - fb = stw_framebuffer_create(hDC, WindowFromDC(hDC), stw_pixelformat_get_info(iPixelFormat), STW_FRAMEBUFFER_WGL_WINDOW, stw_dev->fscreen); + fb = stw_framebuffer_create(hWnd ? NULL : hDC, hWnd, stw_pixelformat_get_info(iPixelFormat), STW_FRAMEBUFFER_WGL_WINDOW, stw_dev->fscreen); if (!fb) return NULL; } diff --git a/src/gallium/frontends/wgl/stw_framebuffer.c b/src/gallium/frontends/wgl/stw_framebuffer.c index 797fe7d2988..79f4705f344 100644 --- a/src/gallium/frontends/wgl/stw_framebuffer.c +++ b/src/gallium/frontends/wgl/stw_framebuffer.c @@ -475,7 +475,7 @@ stw_framebuffer_from_hdc_locked(HDC hdc) hwnd = WindowFromDC(hdc); - return stw_framebuffer_from_hwnd_hdc_locked(hwnd, hdc); + return stw_framebuffer_from_hwnd_hdc_locked(hwnd, hwnd ? NULL : hdc); }