From 47296209dae2e3d33426532a3e896e06373fc088 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Mon, 29 Jun 2009 11:40:21 -0400 Subject: [PATCH] Consolidate channel macros in pixman-combine.h There are now RED_8/RED_16 etc. macros instead of the old Red/Green/Blue. --- pixman/make-combine.pl | 4 +++ pixman/pixman-bits-image.c | 12 +++---- pixman/pixman-combine.c.template | 76 +++++++++++++++++++--------------------- pixman/pixman-combine.h.template | 5 ++- 4 files changed, 48 insertions(+), 49 deletions(-) diff --git a/pixman/make-combine.pl b/pixman/make-combine.pl index d0b0adc..210a5da 100644 --- a/pixman/make-combine.pl +++ b/pixman/make-combine.pl @@ -65,6 +65,10 @@ while () { s/combine_width/combine_$pixel_size/; s/_pixman_setup_combiner_functions_width/_pixman_setup_combiner_functions_$pixel_size/; s/UNc/UN$size/g; + s/ALPHA_c/ALPHA_$size/g; + s/RED_c/RED_$size/g; + s/GREEN_c/GREEN_$size/g; + s/BLUE_c/BLUE_$size/g; # Convert comp*_t values into the appropriate real types. s/comp1_t/uint${size}_t/g; diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c index 864c17f..8feb495 100644 --- a/pixman/pixman-bits-image.c +++ b/pixman/pixman-bits-image.c @@ -31,10 +31,6 @@ #include "pixman-private.h" #include "pixman-combine32.h" -#define Red(x) (((x) >> 16) & 0xff) -#define Green(x) (((x) >> 8) & 0xff) -#define Blue(x) ((x) & 0xff) - /* Store functions */ static void @@ -441,10 +437,10 @@ bits_image_fetch_convolution_pixels (bits_image_t *image, { uint32_t c = *u++; - srtot += Red(c) * f; - sgtot += Green(c) * f; - sbtot += Blue(c) * f; - satot += Alpha(c) * f; + srtot += RED_8(c) * f; + sgtot += GREEN_8(c) * f; + sbtot += BLUE_8(c) * f; + satot += ALPHA_8(c) * f; } } diff --git a/pixman/pixman-combine.c.template b/pixman/pixman-combine.c.template index a963518..5fc07e7 100644 --- a/pixman/pixman-combine.c.template +++ b/pixman/pixman-combine.c.template @@ -9,10 +9,6 @@ #include "pixman-combine.h" -#define Red(x) (((x) >> R_SHIFT) & MASK) -#define Green(x) (((x) >> G_SHIFT) & MASK) -#define Blue(x) ((x) & MASK) - /*** per channel helper functions ***/ static void @@ -67,7 +63,7 @@ fbCombineMaskValueC (comp4_t *src, const comp4_t *mask) } static void -fbCombineMaskAlphaC (const comp4_t *src, comp4_t *mask) +fbCombineMaskALPHA_cC (const comp4_t *src, comp4_t *mask) { comp4_t a = *(mask); comp4_t x; @@ -161,7 +157,7 @@ fbCombineOverU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t ia = Alpha(~s); + comp4_t ia = ALPHA_c(~s); UNcx4_MUL_UNc_ADD_UNcx4(d, ia, s); *(dest + i) = d; @@ -177,7 +173,7 @@ fbCombineOverReverseU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t ia = Alpha(~*(dest + i)); + comp4_t ia = ALPHA_c(~*(dest + i)); UNcx4_MUL_UNc_ADD_UNcx4(s, ia, d); *(dest + i) = s; } @@ -191,7 +187,7 @@ fbCombineInU (pixman_implementation_t *imp, pixman_op_t op, int i; for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); - comp4_t a = Alpha(*(dest + i)); + comp4_t a = ALPHA_c(*(dest + i)); UNcx4_MUL_UNc(s, a); *(dest + i) = s; } @@ -206,7 +202,7 @@ fbCombineInReverseU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t a = Alpha(s); + comp4_t a = ALPHA_c(s); UNcx4_MUL_UNc(d, a); *(dest + i) = d; } @@ -220,7 +216,7 @@ fbCombineOutU (pixman_implementation_t *imp, pixman_op_t op, int i; for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); - comp4_t a = Alpha(~*(dest + i)); + comp4_t a = ALPHA_c(~*(dest + i)); UNcx4_MUL_UNc(s, a); *(dest + i) = s; } @@ -235,7 +231,7 @@ fbCombineOutReverseU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t a = Alpha(~s); + comp4_t a = ALPHA_c(~s); UNcx4_MUL_UNc(d, a); *(dest + i) = d; } @@ -252,8 +248,8 @@ fbCombineAtopU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t dest_a = Alpha(d); - comp4_t src_ia = Alpha(~s); + comp4_t dest_a = ALPHA_c(d); + comp4_t src_ia = ALPHA_c(~s); UNcx4_MUL_UNc_ADD_UNcx4_MUL_UNc(s, dest_a, d, src_ia); *(dest + i) = s; @@ -271,8 +267,8 @@ fbCombineAtopReverseU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t src_a = Alpha(s); - comp4_t dest_ia = Alpha(~d); + comp4_t src_a = ALPHA_c(s); + comp4_t dest_ia = ALPHA_c(~d); UNcx4_MUL_UNc_ADD_UNcx4_MUL_UNc(s, dest_ia, d, src_a); *(dest + i) = s; @@ -290,8 +286,8 @@ fbCombineXorU (pixman_implementation_t *imp, pixman_op_t op, for (i = 0; i < width; ++i) { comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); - comp4_t src_ia = Alpha(~s); - comp4_t dest_ia = Alpha(~d); + comp4_t src_ia = ALPHA_c(~s); + comp4_t dest_ia = ALPHA_c(~d); UNcx4_MUL_UNc_ADD_UNcx4_MUL_UNc(s, dest_ia, d, src_ia); *(dest + i) = s; @@ -373,8 +369,8 @@ fbCombineMultiplyU (pixman_implementation_t *imp, pixman_op_t op, comp4_t s = combineMask (src, mask, i); comp4_t d = *(dest + i); comp4_t ss = s; - comp4_t src_ia = Alpha (~s); - comp4_t dest_ia = Alpha (~d); + comp4_t src_ia = ALPHA_c (~s); + comp4_t dest_ia = ALPHA_c (~d); UNcx4_MUL_UNc_ADD_UNcx4_MUL_UNc (ss, dest_ia, d, src_ia); UNcx4_MUL_UNcx4 (d, s); @@ -393,7 +389,7 @@ fbCombineMultiplyC (pixman_implementation_t *imp, pixman_op_t op, comp4_t s = *(src + i); comp4_t d = *(dest + i); comp4_t r = d; - comp4_t dest_ia = Alpha (~d); + comp4_t dest_ia = ALPHA_c (~d); fbCombineMaskValueC (&s, &m); @@ -414,9 +410,9 @@ fbCombine ## name ## U (pixman_implementation_t *imp, pixman_op_t op, \ for (i = 0; i < width; ++i) { \ comp4_t s = combineMask (src, mask, i); \ comp4_t d = *(dest + i); \ - comp1_t sa = Alpha(s); \ + comp1_t sa = ALPHA_c(s); \ comp1_t isa = ~sa; \ - comp1_t da = Alpha(d); \ + comp1_t da = ALPHA_c(d); \ comp1_t ida = ~da; \ comp4_t result; \ \ @@ -425,9 +421,9 @@ fbCombine ## name ## U (pixman_implementation_t *imp, pixman_op_t op, \ \ *(dest + i) = result + \ (DIV_ONE_UNc (sa * da) << A_SHIFT) + \ - (blend_ ## name (Red (d), da, Red (s), sa) << R_SHIFT) + \ - (blend_ ## name (Green (d), da, Green (s), sa) << G_SHIFT) + \ - (blend_ ## name (Blue (d), da, Blue (s), sa)); \ + (blend_ ## name (RED_c (d), da, RED_c (s), sa) << R_SHIFT) + \ + (blend_ ## name (GREEN_c (d), da, GREEN_c (s), sa) << G_SHIFT) + \ + (blend_ ## name (BLUE_c (d), da, BLUE_c (s), sa)); \ } \ } \ \ @@ -440,7 +436,7 @@ fbCombine ## name ## C (pixman_implementation_t *imp, pixman_op_t op, \ comp4_t m = *(mask + i); \ comp4_t s = *(src + i); \ comp4_t d = *(dest + i); \ - comp1_t da = Alpha(d); \ + comp1_t da = ALPHA_c(d); \ comp1_t ida = ~da; \ comp4_t result; \ \ @@ -450,10 +446,10 @@ fbCombine ## name ## C (pixman_implementation_t *imp, pixman_op_t op, \ UNcx4_MUL_UNcx4_ADD_UNcx4_MUL_UNc (result, ~m, s, ida); \ \ result += \ - (DIV_ONE_UNc (Alpha (m) * da) << A_SHIFT) + \ - (blend_ ## name (Red (d), da, Red (s), Red (m)) << R_SHIFT) + \ - (blend_ ## name (Green (d), da, Green (s), Green (m)) << G_SHIFT) + \ - (blend_ ## name (Blue (d), da, Blue (s), Blue (m))); \ + (DIV_ONE_UNc (ALPHA_c (m) * da) << A_SHIFT) + \ + (blend_ ## name (RED_c (d), da, RED_c (s), RED_c (m)) << R_SHIFT) + \ + (blend_ ## name (GREEN_c (d), da, GREEN_c (s), GREEN_c (m)) << G_SHIFT) + \ + (blend_ ## name (BLUE_c (d), da, BLUE_c (s), BLUE_c (m))); \ \ *(dest + i) = result; \ } \ @@ -788,21 +784,21 @@ fbCombine ## name ## U (pixman_implementation_t *imp, pixman_op_t op, \ for (i = 0; i < width; ++i) { \ comp4_t s = combineMask (src, mask, i); \ comp4_t d = *(dest + i); \ - comp1_t sa = Alpha(s); \ + comp1_t sa = ALPHA_c(s); \ comp1_t isa = ~sa; \ - comp1_t da = Alpha(d); \ + comp1_t da = ALPHA_c(d); \ comp1_t ida = ~da; \ comp4_t result; \ comp4_t sc[3], dc[3], c[3]; \ \ result = d; \ UNcx4_MUL_UNc_ADD_UNcx4_MUL_UNc(result, isa, s, ida); \ - dc[0] = Red (d); \ - sc[0] = Red (s); \ - dc[1] = Green (d); \ - sc[1] = Green (s); \ - dc[2] = Blue (d); \ - sc[2] = Blue (s); \ + dc[0] = RED_c (d); \ + sc[0] = RED_c (s); \ + dc[1] = GREEN_c (d); \ + sc[1] = GREEN_c (s); \ + dc[2] = BLUE_c (d); \ + sc[2] = BLUE_c (s); \ blend_ ## name (c, dc, da, sc, sa); \ \ *(dest + i) = result + \ @@ -1420,7 +1416,7 @@ fbCombineInReverseC (pixman_implementation_t *imp, pixman_op_t op, comp4_t m = *(mask + i); comp4_t a; - fbCombineMaskAlphaC (&s, &m); + fbCombineMaskALPHA_cC (&s, &m); a = m; if (a != ~0) @@ -1473,7 +1469,7 @@ fbCombineOutReverseC (pixman_implementation_t *imp, pixman_op_t op, comp4_t m = *(mask + i); comp4_t a; - fbCombineMaskAlphaC (&s, &m); + fbCombineMaskALPHA_cC (&s, &m); a = ~m; if (a != ~0) diff --git a/pixman/pixman-combine.h.template b/pixman/pixman-combine.h.template index 46a1aba..302d36a 100644 --- a/pixman/pixman-combine.h.template +++ b/pixman/pixman-combine.h.template @@ -15,7 +15,10 @@ #define RB_ONE_HALF #define RB_MASK_PLUS_ONE -#define Alpha(x) ((x) >> A_SHIFT) +#define ALPHA_c(x) ((x) >> A_SHIFT) +#define RED_c(x) (((x) >> R_SHIFT) & MASK) +#define GREEN_c(x) (((x) >> G_SHIFT) & MASK) +#define BLUE_c(x) ((x) & MASK) /* * Helper macros. -- 2.7.4