Make sure that SDL_PIXELFORMAT_ARGB8888 is the first texture format for OpenGL

Fixes https://github.com/libsdl-org/SDL/issues/1440
This commit is contained in:
Sam Lantinga
2025-11-07 11:13:50 -08:00
parent 3489a45216
commit 1fb663b429

View File

@@ -1926,20 +1926,20 @@ static bool GL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
} }
// RGBA32 is always supported with OpenGL // RGBA32 is always supported with OpenGL
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
if (bgra_supported) { if (bgra_supported) {
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32);
} }
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
// Check for shader support // Check for shader support
data->shaders = GL_CreateShaderContext(); data->shaders = GL_CreateShaderContext();
SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL shaders: %s", SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL shaders: %s",
data->shaders ? "ENABLED" : "DISABLED"); data->shaders ? "ENABLED" : "DISABLED");
if (GL_SupportsShader(data->shaders, SHADER_RGB)) { if (GL_SupportsShader(data->shaders, SHADER_RGB)) {
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX32);
if (bgra_supported) { if (bgra_supported) {
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX32); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX32);
} }
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX32);
} else { } else {
SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL RGB shaders not supported"); SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL RGB shaders not supported");
} }