From 9b36a76ee6ced316bcad8cbd6b4530ddd79f547e Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 8 Dec 2025 08:35:53 -0800
Subject: [PATCH] Fixed supported pixel formats on big endian systems (thanks
@ccawley2011!)
---
src/render/gpu/SDL_render_gpu.c | 8 ++++----
src/render/opengl/SDL_render_gl.c | 2 +-
src/render/opengles2/SDL_render_gles2.c | 8 ++++----
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/render/gpu/SDL_render_gpu.c b/src/render/gpu/SDL_render_gpu.c
index 06a06ee9669b5..cbb9cc6ba28fd 100644
--- a/src/render/gpu/SDL_render_gpu.c
+++ b/src/render/gpu/SDL_render_gpu.c
@@ -1787,10 +1787,10 @@ static bool GPU_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
}
}
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR8888);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32); // SDL_PIXELFORMAT_ARGB8888 on little endian systems
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX32);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX32);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR2101010);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA64_FLOAT);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_INDEX8);
diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c
index 6479450717184..17137e3d5f0fc 100644
--- a/src/render/opengl/SDL_render_gl.c
+++ b/src/render/opengl/SDL_render_gl.c
@@ -1933,7 +1933,7 @@ static bool GL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
// RGBA32 is always supported with OpenGL
if (bgra_supported) {
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32); // SDL_PIXELFORMAT_ARGB8888 on little endian systems
}
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c
index 74644e7de5a9a..e6c18e6b3157d 100644
--- a/src/render/opengles2/SDL_render_gles2.c
+++ b/src/render/opengles2/SDL_render_gles2.c
@@ -2430,10 +2430,10 @@ static bool GLES2_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
data->glGetIntegerv(GL_FRAMEBUFFER_BINDING, &window_framebuffer);
data->window_framebuffer = (GLuint)window_framebuffer;
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
- SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR8888);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRA32); // SDL_PIXELFORMAT_ARGB8888 on little endian systems
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA32);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_BGRX32);
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBX32);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_INDEX8);
#ifdef SDL_HAVE_YUV
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12);