diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index ca23ce5714..80b0cfd295 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -1677,8 +1677,6 @@ SDL_Texture *SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *s } } - surface_colorspace = SDL_GetSurfaceColorspace(surface); - // Try to have the best pixel format for the texture // No alpha, but a colorkey => promote to alpha if (!SDL_ISPIXELFORMAT_ALPHA(surface->format) && SDL_SurfaceHasColorKey(surface)) { @@ -1740,6 +1738,9 @@ SDL_Texture *SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *s } } + surface_colorspace = SDL_GetSurfaceColorspace(surface); + texture_colorspace = surface_colorspace; + if (surface_colorspace == SDL_COLORSPACE_SRGB_LINEAR || SDL_COLORSPACETRANSFER(surface_colorspace) == SDL_TRANSFER_CHARACTERISTICS_PQ) { if (SDL_ISPIXELFORMAT_FLOAT(format)) {