[gthumb: 37/129] removed CAIRO_SET_RGBA_FAST, which was broken



commit 75a4908b6cf9b108715dc96da2b3b3a44610d2c5
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Apr 17 20:12:22 2011 +0200

    removed CAIRO_SET_RGBA_FAST, which was broken

 gthumb/cairo-utils.c |    3 +--
 gthumb/cairo-utils.h |   31 ++++++++-----------------------
 2 files changed, 9 insertions(+), 25 deletions(-)
---
diff --git a/gthumb/cairo-utils.c b/gthumb/cairo-utils.c
index 2947164..98c8e91 100644
--- a/gthumb/cairo-utils.c
+++ b/gthumb/cairo-utils.c
@@ -192,7 +192,6 @@ _cairo_image_surface_create_from_pixbuf (GdkPixbuf *pixbuf)
 	int                      s_stride;
 	unsigned char           *s_pixels;
 	int                      h, w;
-	unsigned int             t;
 
 	if (pixbuf == NULL)
 		return NULL;
@@ -221,7 +220,7 @@ _cairo_image_surface_create_from_pixbuf (GdkPixbuf *pixbuf)
 			p_iter = p_pixels;
 
 			for (w = 0; w < width; w++) {
-				CAIRO_SET_RGBA_FAST (s_iter, p_iter[0], p_iter[1], p_iter[2], p_iter[3], t);
+				CAIRO_SET_RGBA (s_iter, p_iter[0], p_iter[1], p_iter[2], p_iter[3]);
 
 				s_iter += 4;
 				p_iter += p_n_channels;
diff --git a/gthumb/cairo-utils.h b/gthumb/cairo-utils.h
index 3408c09..de78f50 100644
--- a/gthumb/cairo-utils.h
+++ b/gthumb/cairo-utils.h
@@ -62,25 +62,10 @@
 
 #define CAIRO_SET_RGBA(pixel, red, green, blue, alpha)				\
 	G_STMT_START {								\
-		gdouble factor = (gdouble) (alpha) / 0xff;			\
-		pixel[CAIRO_RED] = (guchar) (factor * (red) + .5);		\
-		pixel[CAIRO_GREEN] = (guchar) (factor * (green) + .5);		\
-		pixel[CAIRO_BLUE] = (guchar) (factor * (blue) + .5);		\
-		pixel[CAIRO_ALPHA] = alpha;					\
-	} G_STMT_END
-
-#define CAIRO_MULT(dest, src, alpha, temp)					\
-	G_STMT_START {								\
-		temp = src * alpha; 						\
-		/* approximation of division by 255 */				\
-		dest = ((temp >> 8) + temp) >> 8; 				\
-	} G_STMT_END
-
-#define CAIRO_SET_RGBA_FAST(pixel, red, green, blue, alpha, temp)		\
-	G_STMT_START {								\
-		CAIRO_MULT (pixel[CAIRO_RED], red, alpha, temp);		\
-		CAIRO_MULT (pixel[CAIRO_GREEN], green, alpha, temp);		\
-		CAIRO_MULT (pixel[CAIRO_BLUE], blue, alpha, temp);		\
+		double factor = (gdouble) (alpha) / 0xff;			\
+		pixel[CAIRO_RED] = factor * (red);				\
+		pixel[CAIRO_GREEN] = factor * (green);				\
+		pixel[CAIRO_BLUE] = factor * (blue);				\
 		pixel[CAIRO_ALPHA] = alpha;					\
 	} G_STMT_END
 
@@ -100,10 +85,10 @@
 			blue = pixel[CAIRO_BLUE];				\
 		}								\
 		else {								\
-			gdouble factor = (gdouble) 0xff / alpha;		\
-			red = (guchar) (factor * pixel[CAIRO_RED] + .5);	\
-			green = (guchar) (factor * pixel[CAIRO_GREEN] + .5);	\
-			blue = (guchar) (factor * pixel[CAIRO_BLUE] + .5);	\
+			double factor = (double) 0xff / alpha;			\
+			red = factor * pixel[CAIRO_RED];			\
+			green = factor * pixel[CAIRO_GREEN];			\
+			blue = factor * pixel[CAIRO_BLUE];			\
 		}								\
 	} G_STMT_END
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]