# HG changeset patch # User peter1138 # Date 1206667367 0 # Node ID 22d0b091134bb66c311af1c5cd4535a2a85016c0 # Parent 92e05c28a994936a13ec9b11f1bcc39f5a1a5a05 (svn r12453) -Fix [FS#1880]: Remove broken endian-dependent code and unnecessary rgb to bgr swapping. diff -r 92e05c28a994 -r 22d0b091134b src/spriteloader/png.cpp --- a/src/spriteloader/png.cpp Thu Mar 27 21:36:16 2008 +0000 +++ b/src/spriteloader/png.cpp Fri Mar 28 01:22:47 2008 +0000 @@ -9,7 +9,6 @@ #include "../fileio.h" #include "../debug.h" #include "../core/alloc_func.hpp" -#include "../core/endian_func.hpp" #include "png.hpp" #include @@ -126,18 +125,8 @@ color_type = PNG_COLOR_TYPE_RGB; } -#ifdef TTD_LITTLE_ENDIAN - png_set_bgr(png_ptr); -#else - if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) png_set_swap_alpha(png_ptr); -#endif - if (color_type == PNG_COLOR_TYPE_RGB) { -#ifdef TTD_LITTLE_ENDIAN png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); -#else - png_set_filler(png_ptr, 0xff, PNG_FILLER_BEFORE); -#endif } pixelsize = sizeof(uint32); @@ -159,16 +148,16 @@ for (uint x = 0; x < info_ptr->width; x++) { if (mask) { if (row_pointer[x * sizeof(uint8)] != 0) { + dst[x].r = 0; + dst[x].g = 0; dst[x].b = 0; - dst[x].g = 0; - dst[x].r = 0; /* Alpha channel is used from the original image (to allow transparency in remap colors) */ dst[x].m = row_pointer[x * sizeof(uint8)]; } } else { - dst[x].b = row_pointer[x * sizeof(uint32) + 0]; + dst[x].r = row_pointer[x * sizeof(uint32) + 0]; dst[x].g = row_pointer[x * sizeof(uint32) + 1]; - dst[x].r = row_pointer[x * sizeof(uint32) + 2]; + dst[x].b = row_pointer[x * sizeof(uint32) + 2]; dst[x].a = row_pointer[x * sizeof(uint32) + 3]; dst[x].m = 0; }