From 2fbb583290dfbb547f23daaa09e6cb3cf08900cb Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 21 Mar 2025 11:58:42 -0700
Subject: [PATCH] SDL_ClaimWindowForGPUDevice() should fail for transparent
windows
The GPU API doesn't currently support transparent windows (transparent swapchain effects doesn't seem possible on D3D12) so we should explicitly fail so users don't expect transparency and then not get it.
Fixes https://github.com/libsdl-org/SDL/issues/12410
---
src/gpu/SDL_gpu.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/gpu/SDL_gpu.c b/src/gpu/SDL_gpu.c
index 7ca2590ad810c..58c578fbcfc10 100644
--- a/src/gpu/SDL_gpu.c
+++ b/src/gpu/SDL_gpu.c
@@ -2653,8 +2653,11 @@ bool SDL_ClaimWindowForGPUDevice(
{
CHECK_DEVICE_MAGIC(device, false);
if (window == NULL) {
- SDL_InvalidParamError("window");
- return false;
+ return SDL_InvalidParamError("window");
+ }
+
+ if ((window->flags & SDL_WINDOW_TRANSPARENT) != 0) {
+ return SDL_SetError("The GPU API doesn't support transparent windows");
}
return device->ClaimWindow(