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]; } }