Browse Source

Fixed accidentally using INDEX8 textures for RGB24 surfaces

Sam Lantinga 2 tháng trước cách đây
mục cha
commit
015cc6aa6c
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      src/render/SDL_render.c

+ 2 - 1
src/render/SDL_render.c

@@ -1846,7 +1846,8 @@ SDL_Texture *SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *s
 
         for (i = 0; i < renderer->num_texture_formats; ++i) {
             if (!SDL_ISPIXELFORMAT_FOURCC(renderer->texture_formats[i]) &&
-                SDL_ISPIXELFORMAT_ALPHA(renderer->texture_formats[i]) == needAlpha) {
+                SDL_ISPIXELFORMAT_ALPHA(renderer->texture_formats[i]) == needAlpha &&
+                SDL_ISPIXELFORMAT_INDEXED(renderer->texture_formats[i]) == SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
                 format = renderer->texture_formats[i];
                 break;
             }