Explorar o código

Fix drawing transparent cells over opaque cells
(cairo uses pre-multiplied alpha)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@40501 15284696-431f-4ddb-bdfa-cd5b030d7da7

Glynn Clements %!s(int64=15) %!d(string=hai) anos
pai
achega
314d2a35bf
Modificáronse 1 ficheiros con 10 adicións e 7 borrados
  1. 10 7
      lib/cairodriver/Raster.c

+ 10 - 7
lib/cairodriver/Raster.c

@@ -91,13 +91,16 @@ int Cairo_raster(int n, int row,
     G_debug(3, "Cairo_raster: %d %d", n, row);
     G_debug(3, "Cairo_raster: %d %d", n, row);
 
 
     for (i = 0; i < n; i++) {
     for (i = 0; i < n; i++) {
-	unsigned int r = red[i];
-	unsigned int g = grn[i];
-	unsigned int b = blu[i];
-	unsigned int a = (masked && nul && nul[i])
-	    ? 0x00 : 0xFF;
-
-	*dst++ = (a << 24) + (r << 16) + (g << 8) + (b << 0);
+	if (masked && nul && nul[i])
+	    *dst++ = 0;
+	else {
+	    unsigned int r = red[i];
+	    unsigned int g = grn[i];
+	    unsigned int b = blu[i];
+	    unsigned int a = 0xFF;
+
+	    *dst++ = (a << 24) + (r << 16) + (g << 8) + (b << 0);
+	}
     }
     }
 
 
     return row + 1;
     return row + 1;