[gthumb: 37/129] removed CAIRO_SET_RGBA_FAST, which was broken
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb: 37/129] removed CAIRO_SET_RGBA_FAST, which was broken
- Date: Wed, 27 Apr 2011 20:53:29 +0000 (UTC)
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]