kwo pushed a commit to branch master.

http://git.enlightenment.org/legacy/imlib2_loaders.git/commit/?id=e2194ab37955bc21c4659804884cc9558712442a

commit e2194ab37955bc21c4659804884cc9558712442a
Author: Kim Woelders <k...@woelders.dk>
Date:   Wed Nov 20 16:57:08 2019 +0100

    XCF loader: Prefer DATA32 when accessing imlib2 image data
---
 src/modules/loaders/color_values.h          |  20 ----
 src/modules/loaders/loader_xcf.c            |  69 +++++++-------
 src/modules/loaders/loader_xcf.h            |  76 +++++++--------
 src/modules/loaders/loader_xcf_pixelfuncs.c | 143 +++++++++++++++++++---------
 4 files changed, 173 insertions(+), 135 deletions(-)

diff --git a/src/modules/loaders/color_values.h 
b/src/modules/loaders/color_values.h
deleted file mode 100644
index 861daa5..0000000
--- a/src/modules/loaders/color_values.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __color_values_h
-#define __color_values_h 1
-
-#ifndef WORDS_BIGENDIAN
-
-#define A_VAL(p) ((DATA8 *)(p))[3]
-#define R_VAL(p) ((DATA8 *)(p))[2]
-#define G_VAL(p) ((DATA8 *)(p))[1]
-#define B_VAL(p) ((DATA8 *)(p))[0]
-
-#else
-
-#define A_VAL(p) ((DATA8 *)(p))[0]
-#define R_VAL(p) ((DATA8 *)(p))[1]
-#define G_VAL(p) ((DATA8 *)(p))[2]
-#define B_VAL(p) ((DATA8 *)(p))[3]
-
-#endif
-
-#endif /* __color_values_h */
diff --git a/src/modules/loaders/loader_xcf.c b/src/modules/loaders/loader_xcf.c
index 7ca745d..a226ba2 100644
--- a/src/modules/loaders/loader_xcf.c
+++ b/src/modules/loaders/loader_xcf.c
@@ -55,7 +55,6 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 
-#include "color_values.h"
 #include "loader_common.h"
 #include "loader_xcf.h"
 
@@ -194,7 +193,7 @@ struct _Layer {
     * I know, but makes life easier
     */
 
-   DATA8              *data;
+   DATA32             *data;
 
    /* Layers are stored as a linked list. */
    struct _Layer      *next;
@@ -240,7 +239,7 @@ struct _GimpImage {
    /* Tadaa -- the final image data. Layers get pasted
     * onto this one, bottom-up.
     */
-   DATA8              *data;
+   DATA32             *data;
 
    Layer              *layers;
    Layer              *last_layer;
@@ -410,8 +409,8 @@ set_layer_opacity(Layer * layer)
 
    if (layer->opacity != 255)
      {
-        for (i = 0, ptr = layer->data; i < layer->width * layer->height;
-             i++, ptr += 4)
+        for (i = 0, ptr = (DATA8 *) layer->data;
+             i < layer->width * layer->height; i++, ptr += 4)
           {
              *(ptr + 3) = (*(ptr + 3) * layer->opacity) >> 8;
           }
@@ -433,8 +432,8 @@ apply_layer_mask(Layer * layer)
    if (!layer->mask)
       return;
 
-   ptr1 = layer->data;
-   ptr2 = layer->mask->data;
+   ptr1 = (DATA8 *) layer->data;
+   ptr2 = (DATA8 *) layer->mask->data;
 
    for (i = 0; i < layer->width * layer->height; i++)
      {
@@ -850,12 +849,12 @@ xcf_load_layer_props(Layer * layer)
 
 static void
 read_tiles_into_data(Tile * tiles, int num_cols, int width,
-                     int height, int bpp, DATA8 ** data_p, int use_cmap)
+                     int height, int bpp, DATA32 ** data_p, int use_cmap)
 {
    int                 tile_x, tile_y, x, y, offset_x, offset_y;
-   DATA8              *data;
-   DATA8              *ptr;
+   DATA32             *data;
    DATA8              *ptr2;
+   unsigned char       a, r, g, b;
    Tile               *t;
    int                 warned = 0;
 
@@ -866,9 +865,10 @@ read_tiles_into_data(Tile * tiles, int num_cols, int width,
       free(*data_p);
 
    /* Always allocate the data as 4 bytes per pixel */
-   data = (*data_p) = malloc(sizeof(DATA32) * width * height);
+   data = malloc(sizeof(DATA32) * width * height);
+   *data_p = data;
 
-   ptr = data;
+   a = r = g = b = 0xff;
 
    for (y = 0; y < height; y++)
      {
@@ -888,28 +888,28 @@ read_tiles_into_data(Tile * tiles, int num_cols, int 
width,
                   /* use colormap if the image has one */
                   if (image->cmap && use_cmap)
                     {
-                       R_VAL(ptr) = image->cmap[*(ptr2) * 3];
-                       G_VAL(ptr) = image->cmap[*(ptr2) * 3 + 1];
-                       B_VAL(ptr) = image->cmap[*(ptr2) * 3 + 2];
-                       A_VAL(ptr) = 255;
+                       r = image->cmap[*(ptr2) * 3];
+                       g = image->cmap[*(ptr2) * 3 + 1];
+                       b = image->cmap[*(ptr2) * 3 + 2];
+                       a = 255;
                     }
                   /* else use colors themselves */
                   else
                     {
-                       R_VAL(ptr) = *(ptr2);
-                       G_VAL(ptr) = *(ptr2);
-                       B_VAL(ptr) = *(ptr2);
-                       A_VAL(ptr) = 255;
+                       r = *(ptr2);
+                       g = *(ptr2);
+                       b = *(ptr2);
+                       a = 255;
                     }
                   break;
                case 2:
                   /* use colormap if the image has one */
                   if (image->cmap && use_cmap)
                     {
-                       R_VAL(ptr) = image->cmap[*(ptr2) * 3];
-                       G_VAL(ptr) = image->cmap[*(ptr2) * 3 + 1];
-                       B_VAL(ptr) = image->cmap[*(ptr2) * 3 + 2];
-                       A_VAL(ptr) = *(ptr2 + 1);
+                       r = image->cmap[*(ptr2) * 3];
+                       g = image->cmap[*(ptr2) * 3 + 1];
+                       b = image->cmap[*(ptr2) * 3 + 2];
+                       a = *(ptr2 + 1);
                     }
                   /* else use colors themselves */
                   else if (warned == 0)
@@ -931,20 +931,21 @@ read_tiles_into_data(Tile * tiles, int num_cols, int 
width,
                     }
                   else
                     {
-                       R_VAL(ptr) = *(ptr2);
-                       G_VAL(ptr) = *(ptr2 + 1);
-                       B_VAL(ptr) = *(ptr2 + 2);
-                       A_VAL(ptr) = 255;
+                       r = *(ptr2);
+                       g = *(ptr2 + 1);
+                       b = *(ptr2 + 2);
+                       a = 255;
                     }
                   break;
                default:
-                  R_VAL(ptr) = *(ptr2);
-                  G_VAL(ptr) = *(ptr2 + 1);
-                  B_VAL(ptr) = *(ptr2 + 2);
-                  A_VAL(ptr) = *(ptr2 + 3);
+                  r = *(ptr2);
+                  g = *(ptr2 + 1);
+                  b = *(ptr2 + 2);
+                  a = *(ptr2 + 3);
                   break;
                }
-             ptr += 4;
+
+             *data++ = PIXEL_ARGB(a, r, g, b);
           }
      }
 }
@@ -1585,7 +1586,7 @@ xcf_to_imlib(ImlibImage * im)
    im->h = image->height;
    SET_FLAG(im->flags, F_HAS_ALPHA);
 
-   im->data = (DATA32 *) image->data;
+   im->data = image->data;
 }
 
 char
diff --git a/src/modules/loaders/loader_xcf.h b/src/modules/loaders/loader_xcf.h
index 92da72f..fe55dd6 100644
--- a/src/modules/loaders/loader_xcf.h
+++ b/src/modules/loaders/loader_xcf.h
@@ -2,50 +2,50 @@
 #define LOADER_XCF_H
 
 /* Stuff for layer merging: */
-extern void         combine_pixels_normal(DATA8 * src, int src_w, int src_h,
-                                          DATA8 * dest, int dest_w, int dest_h,
-                                          int dest_x, int dest_y);
-extern void         combine_pixels_add(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_normal(const DATA32 * src, int src_w,
+                                          int src_h, DATA32 * dest, int dest_w,
+                                          int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_add(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_sub(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_sub(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_diff(DATA8 * src, int src_w, int src_h,
-                                        DATA8 * dest, int dest_w, int dest_h,
-                                        int dest_x, int dest_y);
-extern void         combine_pixels_darken(DATA8 * src, int src_w, int src_h,
-                                          DATA8 * dest, int dest_w, int dest_h,
-                                          int dest_x, int dest_y);
-extern void         combine_pixels_lighten(DATA8 * src, int src_w, int src_h,
-                                           DATA8 * dest, int dest_w, int 
dest_h,
-                                           int dest_x, int dest_y);
-extern void         combine_pixels_mult(DATA8 * src, int src_w, int src_h,
-                                        DATA8 * dest, int dest_w, int dest_h,
-                                        int dest_x, int dest_y);
-extern void         combine_pixels_div(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_diff(const DATA32 * src, int src_w,
+                                        int src_h, DATA32 * dest, int dest_w,
+                                        int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_darken(const DATA32 * src, int src_w,
+                                          int src_h, DATA32 * dest, int dest_w,
+                                          int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_lighten(const DATA32 * src, int src_w,
+                                           int src_h, DATA32 * dest, int 
dest_w,
+                                           int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_mult(const DATA32 * src, int src_w,
+                                        int src_h, DATA32 * dest, int dest_w,
+                                        int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_div(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_screen(DATA8 * src, int src_w, int src_h,
-                                          DATA8 * dest, int dest_w, int dest_h,
-                                          int dest_x, int dest_y);
-extern void         combine_pixels_overlay(DATA8 * src, int src_w, int src_h,
-                                           DATA8 * dest, int dest_w, int 
dest_h,
-                                           int dest_x, int dest_y);
-extern void         combine_pixels_hue(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_screen(const DATA32 * src, int src_w,
+                                          int src_h, DATA32 * dest, int dest_w,
+                                          int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_overlay(const DATA32 * src, int src_w,
+                                           int src_h, DATA32 * dest, int 
dest_w,
+                                           int dest_h, int dest_x, int dest_y);
+extern void         combine_pixels_hue(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_sat(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_sat(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_val(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_val(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_col(DATA8 * src, int src_w, int src_h,
-                                       DATA8 * dest, int dest_w, int dest_h,
+extern void         combine_pixels_col(const DATA32 * src, int src_w, int 
src_h,
+                                       DATA32 * dest, int dest_w, int dest_h,
                                        int dest_x, int dest_y);
-extern void         combine_pixels_diss(DATA8 * src, int src_w, int src_h,
-                                        DATA8 * dest, int dest_w, int dest_h,
-                                        int dest_x, int dest_y);
+extern void         combine_pixels_diss(const DATA32 * src, int src_w,
+                                        int src_h, DATA32 * dest, int dest_w,
+                                        int dest_h, int dest_x, int dest_y);
 
 #endif /* LOADER_XCF_H */
diff --git a/src/modules/loaders/loader_xcf_pixelfuncs.c 
b/src/modules/loaders/loader_xcf_pixelfuncs.c
index fed96ee..5ae8bd5 100644
--- a/src/modules/loaders/loader_xcf_pixelfuncs.c
+++ b/src/modules/loaders/loader_xcf_pixelfuncs.c
@@ -28,9 +28,24 @@
 
 #include "common.h"
 #include "image.h"
-#include "color_values.h"
 #include "loader_xcf.h"
 
+#ifndef WORDS_BIGENDIAN
+
+#define A_VAL(p) ((DATA8 *)(p))[3]
+#define R_VAL(p) ((DATA8 *)(p))[2]
+#define G_VAL(p) ((DATA8 *)(p))[1]
+#define B_VAL(p) ((DATA8 *)(p))[0]
+
+#else
+
+#define A_VAL(p) ((DATA8 *)(p))[0]
+#define R_VAL(p) ((DATA8 *)(p))[1]
+#define G_VAL(p) ((DATA8 *)(p))[2]
+#define B_VAL(p) ((DATA8 *)(p))[3]
+
+#endif
+
 #ifdef XCF_DBG
 #define D(s) \
   { \
@@ -316,9 +331,12 @@ _clip(int *src_tl_x, int *src_tl_y,
 }
 
 void
-combine_pixels_normal(DATA8 * src, int src_w, int src_h, DATA8 * dest,
-                      int dest_w, int dest_h, int dest_x, int dest_y)
+combine_pixels_normal(const DATA32 * src_, int src_w, int src_h,
+                      DATA32 * dst_, int dest_w, int dest_h,
+                      int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -371,9 +389,12 @@ combine_pixels_normal(DATA8 * src, int src_w, int src_h, 
DATA8 * dest,
 }
 
 void
-combine_pixels_add(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_add(const DATA32 * src_, int src_w, int src_h,
+                   DATA32 * dst_, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -403,9 +424,12 @@ combine_pixels_add(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
 }
 
 void
-combine_pixels_sub(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_sub(const DATA32 * src_, int src_w, int src_h,
+                   DATA32 * dst_, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -435,9 +459,12 @@ combine_pixels_sub(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
 }
 
 void
-combine_pixels_diff(DATA8 * src, int src_w, int src_h, DATA8 * dest, int 
dest_w,
-                    int dest_h, int dest_x, int dest_y)
+combine_pixels_diff(const DATA32 * src_, int src_w, int src_h,
+                    DATA32 * dst_, int dest_w, int dest_h,
+                    int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -467,9 +494,12 @@ combine_pixels_diff(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
 }
 
 void
-combine_pixels_darken(DATA8 * src, int src_w, int src_h, DATA8 * dest,
-                      int dest_w, int dest_h, int dest_x, int dest_y)
+combine_pixels_darken(const DATA32 * src_, int src_w, int src_h,
+                      DATA32 * dst_, int dest_w, int dest_h,
+                      int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -493,9 +523,12 @@ combine_pixels_darken(DATA8 * src, int src_w, int src_h, 
DATA8 * dest,
 }
 
 void
-combine_pixels_lighten(DATA8 * src, int src_w, int src_h, DATA8 * dest,
-                       int dest_w, int dest_h, int dest_x, int dest_y)
+combine_pixels_lighten(const DATA32 * src_, int src_w, int src_h,
+                       DATA32 * dst_, int dest_w, int dest_h,
+                       int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -519,9 +552,12 @@ combine_pixels_lighten(DATA8 * src, int src_w, int src_h, 
DATA8 * dest,
 }
 
 void
-combine_pixels_mult(DATA8 * src, int src_w, int src_h, DATA8 * dest, int 
dest_w,
-                    int dest_h, int dest_x, int dest_y)
+combine_pixels_mult(const DATA32 * src_, int src_w, int src_h,
+                    DATA32 * dst_, int dest_w, int dest_h,
+                    int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -544,14 +580,17 @@ combine_pixels_mult(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
            AS = MIN(AS, AD);
         }
 
-   combine_pixels_normal(src, src_w, src_h, dest, dest_w, dest_h, dest_x,
-                         dest_y);
+   combine_pixels_normal(src_, src_w, src_h, dst_, dest_w, dest_h,
+                         dest_x, dest_y);
 }
 
 void
-combine_pixels_div(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_div(const DATA32 * src_, int src_w, int src_h,
+                   DATA32 * dst_, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -573,14 +612,17 @@ combine_pixels_div(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
            AS = MIN(AD, AS);
         }
 
-   combine_pixels_normal(src, src_w, src_h, dest, dest_w, dest_h, dest_x,
-                         dest_y);
+   combine_pixels_normal(src_, src_w, src_h, dst_, dest_w, dest_h,
+                         dest_x, dest_y);
 }
 
 void
-combine_pixels_screen(DATA8 * src, int src_w, int src_h, DATA8 * dest,
-                      int dest_w, int dest_h, int dest_x, int dest_y)
+combine_pixels_screen(const DATA32 * src_, int src_w, int src_h,
+                      DATA32 * dst_, int dest_w, int dest_h,
+                      int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -604,9 +646,12 @@ combine_pixels_screen(DATA8 * src, int src_w, int src_h, 
DATA8 * dest,
 }
 
 void
-combine_pixels_overlay(DATA8 * src, int src_w, int src_h, DATA8 * dest,
-                       int dest_w, int dest_h, int dest_x, int dest_y)
+combine_pixels_overlay(const DATA32 * src_, int src_w, int src_h,
+                       DATA32 * dst_, int dest_w, int dest_h,
+                       int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -639,9 +684,12 @@ combine_pixels_overlay(DATA8 * src, int src_w, int src_h, 
DATA8 * dest,
 }
 
 static void
-combine_pixels_hsv(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y, int mode)
+combine_pixels_hsv(const DATA32 * src_, int src_w, int src_h,
+                   DATA32 * dst_, int dest_w, int dest_h,
+                   int dest_x, int dest_y, int mode)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -680,33 +728,39 @@ combine_pixels_hsv(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
 }
 
 void
-combine_pixels_hue(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_hue(const DATA32 * src, int src_w, int src_h,
+                   DATA32 * dest, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
-   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h, dest_x, dest_y,
-                      0);
+   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h,
+                      dest_x, dest_y, 0);
 }
 
 void
-combine_pixels_sat(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_sat(const DATA32 * src, int src_w, int src_h,
+                   DATA32 * dest, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
-   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h, dest_x, dest_y,
-                      1);
+   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h,
+                      dest_x, dest_y, 1);
 }
 
 void
-combine_pixels_val(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_val(const DATA32 * src, int src_w, int src_h,
+                   DATA32 * dest, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
-   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h, dest_x, dest_y,
-                      2);
+   combine_pixels_hsv(src, src_w, src_h, dest, dest_w, dest_h,
+                      dest_x, dest_y, 2);
 }
 
 void
-combine_pixels_col(DATA8 * src, int src_w, int src_h, DATA8 * dest, int dest_w,
-                   int dest_h, int dest_x, int dest_y)
+combine_pixels_col(const DATA32 * src_, int src_w, int src_h,
+                   DATA32 * dst_, int dest_w, int dest_h,
+                   int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;
@@ -732,9 +786,12 @@ combine_pixels_col(DATA8 * src, int src_w, int src_h, 
DATA8 * dest, int dest_w,
 }
 
 void
-combine_pixels_diss(DATA8 * src, int src_w, int src_h, DATA8 * dest, int 
dest_w,
-                    int dest_h, int dest_x, int dest_y)
+combine_pixels_diss(const DATA32 * src_, int src_w, int src_h,
+                    DATA32 * dst_, int dest_w, int dest_h,
+                    int dest_x, int dest_y)
 {
+   const DATA8        *src = (const DATA8 *)src_;
+   DATA8              *dest = (DATA8 *) dst_;
    int                 x, y, s_idx, d_idx;
    int                 src_tl_x = 0, src_tl_y = 0;
    int                 src_br_x = src_w, src_br_y = src_h;

-- 


Reply via email to