From c61497b744f64806eeea1b3d8289a5c97ca862da Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 3 Dec 2025 21:21:52 -0800 Subject: [PATCH] Account for indexed formats when matching texture formats Fixes https://github.com/libsdl-org/SDL/issues/14569 --- src/render/SDL_render.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index a3c063215c..c33a232099 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -1476,11 +1476,13 @@ static SDL_PixelFormat GetClosestSupportedFormat(SDL_Renderer *renderer, SDL_Pix } } else { bool hasAlpha = SDL_ISPIXELFORMAT_ALPHA(format); + bool isIndexed = SDL_ISPIXELFORMAT_INDEXED(format); // We just want to match the first format that has the same channels for (i = 0; i < renderer->num_texture_formats; ++i) { if (!SDL_ISPIXELFORMAT_FOURCC(renderer->texture_formats[i]) && - SDL_ISPIXELFORMAT_ALPHA(renderer->texture_formats[i]) == hasAlpha) { + SDL_ISPIXELFORMAT_ALPHA(renderer->texture_formats[i]) == hasAlpha && + SDL_ISPIXELFORMAT_INDEXED(renderer->texture_formats[i]) == isIndexed) { return renderer->texture_formats[i]; } }