patches/qt-02-libpng.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 3018 7949b316d9d4
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name

--- qt-x11-opensource-src-4.4.3/src/gui/image/qpnghandler.cpp-orig	2010-11-10 17:47:52.203891052 -0600
+++ qt-x11-opensource-src-4.4.3/src/gui/image/qpnghandler.cpp	2010-11-10 17:48:12.866370835 -0600
@@ -310,7 +310,7 @@ void setup_qt(QImage& image, png_structp
                 image.setColor(i, qRgba(c,c,c,0xff));
             }
             if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
-                const int g = info_ptr->trans_values.gray;
+                const int g = info_ptr->trans_color.gray;
                 if (g < ncols) {
                     image.setColor(g, 0);
                 }
@@ -339,7 +339,7 @@ void setup_qt(QImage& image, png_structp
                     info_ptr->palette[i].red,
                     info_ptr->palette[i].green,
                     info_ptr->palette[i].blue,
-                    info_ptr->trans[i]
+                    info_ptr->trans_alpha[i]
                    )
                );
                 i++;
@@ -556,13 +556,13 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandler
 #if 0 // libpng takes care of this.
     png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)
         if (outImage->depth()==32 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
-            QRgb trans = 0xFF000000 | qRgb(
-                (info_ptr->trans_values.red << 8 >> bit_depth)&0xff,
-                (info_ptr->trans_values.green << 8 >> bit_depth)&0xff,
-                (info_ptr->trans_values.blue << 8 >> bit_depth)&0xff);
+            QRgb trans_alpha = 0xFF000000 | qRgb(
+                (info_ptr->trans_color.red << 8 >> bit_depth)&0xff,
+                (info_ptr->trans_color.green << 8 >> bit_depth)&0xff,
+                (info_ptr->trans_color.blue << 8 >> bit_depth)&0xff);
             for (uint y=0; y<height; y++) {
                 for (uint x=0; x<info_ptr->width; x++) {
-                    if (((uint**)jt)[y][x] == trans) {
+                    if (((uint**)jt)[y][x] == trans_alpha) {
                         ((uint**)jt)[y][x] &= 0x00FFFFFF;
                     } else {
                     }