patches/qt3-0014-png-gamma-fix.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 782 a013313b88b4
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
782
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     1
--- qt-x11-free-3.3.5/src/kernel/qpngio.cpp.orig	Fri Feb 10 14:45:53 2006
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     2
+++ qt-x11-free-3.3.5/src/kernel/qpngio.cpp	Fri Feb 10 14:48:05 2006
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     3
@@ -110,10 +110,18 @@
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     4
 static
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     5
 void setup_qt( QImage& image, png_structp png_ptr, png_infop info_ptr, float screen_gamma=0.0 )
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     6
 {
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     7
-    if ( screen_gamma != 0.0 && png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA) ) {
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     8
+    if ( 0.0 == screen_gamma )
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
     9
+	// PNG docs say this is a good guess for a PC monitor
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    10
+        // in a dark room
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    11
+	screen_gamma = 2.2;
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    12
+    if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA) ) {
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    13
+	// the file has a gAMA attribute
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    14
 	double file_gamma;
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    15
-	png_get_gAMA(png_ptr, info_ptr, &file_gamma);
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    16
-	png_set_gamma( png_ptr, screen_gamma, file_gamma );
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    17
+	if ( png_get_gAMA(png_ptr, info_ptr, &file_gamma))
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    18
+	    png_set_gamma( png_ptr, screen_gamma, file_gamma );
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    19
+    } else {
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    20
+	// no file gamma, use a reasonable default
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    21
+	png_set_gamma( png_ptr, screen_gamma, 0.45455 );
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    22
     }
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    23
 
a013313b88b4 QT3 Spec file and patches, initial revision.
moinakg
parents:
diff changeset
    24
     png_uint_32 width;