[Pkg-e-commits] [SCM] Enlightenment DR17 advanced canvas library branch, upstream-vcs, updated. 069f3cc6c93f253bffbc90289fe21d868f745bb6

cedric cedric at alioth.debian.org
Sat Jun 7 18:24:33 UTC 2008


The following commit has been merged in the upstream-vcs branch:
commit 4a030eea664b19db0b132fbaabdeb70234e137cd
Author: cedric <cedric>
Date:   Tue Jun 3 14:45:38 2008 +0000

    Fix common 16bpp engine use of alpha.

diff --git a/src/lib/engines/common_16/evas_soft16_image_scaled_sampled.c b/src/lib/engines/common_16/evas_soft16_image_scaled_sampled.c
index 10b5f41..bde9292 100644
--- a/src/lib/engines/common_16/evas_soft16_image_scaled_sampled.c
+++ b/src/lib/engines/common_16/evas_soft16_image_scaled_sampled.c
@@ -93,17 +93,17 @@ _soft16_image_draw_scaled_no_mul(Soft16_Image *src, Soft16_Image *dst,
 				 int dst_offset, int w, int h,
 				 int *offset_x, int *offset_y)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_transp_solid
 	(src, dst, dc, dst_offset, w, h, offset_x, offset_y);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_solid_solid
 	(src, dst, dc, dst_offset, w, h, offset_x, offset_y);
    else
       fprintf(stderr,
-              "Unsupported draw of scaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITHOUT COLOR MUL\n",
-              src->flags.have_alpha, dst->flags.have_alpha);
+              "Unsupported draw of scaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITHOUT COLOR MUL\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha);
 }
 
 static void
@@ -205,17 +205,17 @@ _soft16_image_draw_scaled_mul_alpha(Soft16_Image *src, Soft16_Image *dst,
 				    int dst_offset, int w, int h,
 				    int *offset_x, int *offset_y, DATA8 a)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_transp_solid_mul_alpha
          (src, dst, dc, dst_offset, w, h, offset_x, offset_y, a);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_solid_solid_mul_alpha
          (src, dst, dc, dst_offset, w, h, offset_x, offset_y, a);
    else
       fprintf(stderr,
-              "Unsupported draw of scaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITH ALPHA MUL %d\n",
-              src->flags.have_alpha, dst->flags.have_alpha, A_VAL(&dc->mul.col));
+              "Unsupported draw of scaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITH ALPHA MUL %d\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha, A_VAL(&dc->mul.col));
 }
 
 static void
@@ -387,17 +387,17 @@ _soft16_image_draw_scaled_mul_color(Soft16_Image *src, Soft16_Image *dst,
 				    int *offset_x, int *offset_y,
 				    DATA8 r, DATA8 g, DATA8 b, DATA8 a)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_transp_solid_mul_color
          (src, dst, dc, dst_offset, w, h, offset_x, offset_y, r, g, b, a);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_scaled_solid_solid_mul_color
          (src, dst, dc, dst_offset, w, h, offset_x, offset_y, r, g, b, a);
    else
       fprintf(stderr,
-              "Unsupported draw of scaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITH COLOR MUL 0x%08x\n",
-              src->flags.have_alpha, dst->flags.have_alpha, dc->mul.col);
+              "Unsupported draw of scaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITH COLOR MUL 0x%08x\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha, dc->mul.col);
 }
 
 static inline void
diff --git a/src/lib/engines/common_16/evas_soft16_image_unscaled.c b/src/lib/engines/common_16/evas_soft16_image_unscaled.c
index eab9123..f22e269 100644
--- a/src/lib/engines/common_16/evas_soft16_image_unscaled.c
+++ b/src/lib/engines/common_16/evas_soft16_image_unscaled.c
@@ -51,19 +51,19 @@ _soft16_image_draw_unscaled_no_mul(Soft16_Image *src, Soft16_Image *dst,
                                    int src_offset, int dst_offset,
                                    int width, int height)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_unscaled_transp_solid(src, dst, dc,
                                                src_offset, dst_offset,
                                                width, height);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_unscaled_solid_solid(src, dst, dc,
                                               src_offset, dst_offset,
                                               width, height);
    else
       fprintf(stderr,
-              "Unsupported draw of unscaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITHOUT COLOR MUL\n",
-              src->flags.have_alpha, dst->flags.have_alpha);
+              "Unsupported draw of unscaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITHOUT COLOR MUL\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha);
 }
 
 static void
@@ -121,17 +121,17 @@ _soft16_image_draw_unscaled_mul_alpha(Soft16_Image *src, Soft16_Image *dst,
                                       int src_offset, int dst_offset,
                                       int width, int height, DATA8 a)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_unscaled_transp_solid_mul_alpha
          (src, dst, dc, src_offset, dst_offset, width, height, a);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
       _soft16_image_draw_unscaled_solid_solid_mul_alpha
          (src, dst, dc, src_offset, dst_offset, width, height, a);
    else
       fprintf(stderr,
-              "Unsupported draw of unscaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITH ALPHA MUL %d\n",
-              src->flags.have_alpha, dst->flags.have_alpha, A_VAL(&dc->mul.col));
+              "Unsupported draw of unscaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITH ALPHA MUL %d\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha, A_VAL(&dc->mul.col));
 }
 
 static void
@@ -212,17 +212,17 @@ _soft16_image_draw_unscaled_mul_color(Soft16_Image *src, Soft16_Image *dst,
                                       int width, int height,
 				      DATA8 r, DATA8 g, DATA8 b, DATA8 a)
 {
-   if (src->flags.have_alpha && (!dst->flags.have_alpha))
+   if (src->cache_entry.flags.alpha && (!dst->cache_entry.flags.alpha))
      _soft16_image_draw_unscaled_transp_solid_mul_color
 	(src, dst, dc, src_offset, dst_offset, width, height, r, g, b, a);
-   else if ((!src->flags.have_alpha) && (!dst->flags.have_alpha))
+   else if ((!src->cache_entry.flags.alpha) && (!dst->cache_entry.flags.alpha))
      _soft16_image_draw_unscaled_solid_solid_mul_color
        (src, dst, dc, src_offset, dst_offset, width, height, r, g, b, a);
    else
       fprintf(stderr,
-              "Unsupported draw of unscaled images src->flags.have_alpha=%d, "
-              "dst->flags.have_alpha=%d, WITH COLOR MUL 0x%08x\n",
-              src->flags.have_alpha, dst->flags.have_alpha, dc->mul.col);
+              "Unsupported draw of unscaled images src->cache_entry.flags.alpha=%d, "
+              "dst->cache_entry.flags.alpha=%d, WITH COLOR MUL 0x%08x\n",
+              src->cache_entry.flags.alpha, dst->cache_entry.flags.alpha, dc->mul.col);
 }
 
 static inline void
diff --git a/src/lib/engines/common_16/evas_soft16_main.c b/src/lib/engines/common_16/evas_soft16_main.c
index 2068eca..f5a2241 100644
--- a/src/lib/engines/common_16/evas_soft16_main.c
+++ b/src/lib/engines/common_16/evas_soft16_main.c
@@ -101,7 +101,7 @@ _evas_common_soft16_image_new(void)
    im->pixels = NULL;
    im->alpha = NULL;
    /* When is have_alpha set ? */
-   im->flags.have_alpha = 0;
+/*    im->flags.have_alpha = 0; */
    im->flags.free_pixels = 0;
    im->flags.free_alpha = 0;
 
@@ -122,10 +122,10 @@ _evas_common_soft16_image_surface_alloc(Image_Entry *ie, int w, int h)
 
    if (im->stride < 0) im->stride = _calc_stride(w);
 
-   im->pixels = realloc(im->pixels, IMG_BYTE_SIZE(im->stride, h, im->flags.have_alpha));
+   im->pixels = realloc(im->pixels, IMG_BYTE_SIZE(im->stride, h, ie->flags.alpha));
    if (!im->pixels) return -1;
 
-   if (im->flags.have_alpha)
+   if (ie->flags.alpha)
      {
         im->alpha = (DATA8 *)(im->pixels + (im->stride * h));
         im->flags.free_alpha = 0;
@@ -172,7 +172,7 @@ _evas_common_load_soft16_image_from_file(Image_Entry *ie)
 
    sim->cache_entry.w = sim->source->cache_entry.w;
    sim->cache_entry.h = sim->source->cache_entry.h;
-   sim->flags.have_alpha = im->cache_entry.flags.alpha;
+   ie->flags.alpha = im->cache_entry.flags.alpha;
    if (sim->stride < 0) sim->stride = _calc_stride(sim->cache_entry.w);
 
    return 0;
@@ -209,7 +209,7 @@ _evas_common_soft16_image_ram_usage(Image_Entry *ie)
    Soft16_Image *im = (Soft16_Image *) ie;
 
    if (im->pixels && im->flags.free_pixels)
-     return IMG_BYTE_SIZE(im->stride, im->cache_entry.h, im->flags.have_alpha);
+     return IMG_BYTE_SIZE(im->stride, im->cache_entry.h, ie->flags.alpha);
    return 0;
 }
 
@@ -232,14 +232,14 @@ _evas_common_soft16_image_from_data(Image_Entry* ie_dst, int w, int h, DATA32 *i
    /* FIXME: handle colorspace */
    ie_dst->w = w;
    ie_dst->h = h;
+   ie_dst->flags.alpha = alpha;
 
-   im->flags.have_alpha = alpha;
    im->flags.free_pixels = 0;
    im->flags.free_alpha = 0;
 
    /* FIXME: That's bad, the application must be aware of the engine internal. */
    im->pixels = (DATA16 *) image_data;
-   if (im->flags.have_alpha)
+   if (ie_dst->flags.alpha)
      im->alpha = (DATA8 *)(im->pixels + (im->stride * h));
 
    return 0;
@@ -251,12 +251,10 @@ _evas_common_soft16_image_from_copied_data(Image_Entry* ie_dst, int w, int h, DA
    Soft16_Image *im = (Soft16_Image *) ie_dst;
 
    /* FIXME: handle colorspace */
-   im->flags.have_alpha = alpha;
-   evas_cache_image_surface_alloc(ie_dst, w, h);
    if (image_data)
-     memcpy(im->pixels, image_data, IMG_BYTE_SIZE(im->stride, h, im->flags.have_alpha));
+     memcpy(im->pixels, image_data, IMG_BYTE_SIZE(im->stride, h, ie_dst->flags.alpha));
    else
-     memset(im->pixels, 0, IMG_BYTE_SIZE(im->stride, h, im->flags.have_alpha));
+     memset(im->pixels, 0, IMG_BYTE_SIZE(im->stride, h, ie_dst->flags.alpha));
 
    return 0;
 }
@@ -539,11 +537,11 @@ soft16_image_alpha_set(Soft16_Image *im, int have_alpha)
 {
    Soft16_Image   *new_im;
 
-   if (im->flags.have_alpha == have_alpha) return im;
+   if (im->cache_entry.flags.alpha == have_alpha) return im;
 
    new_im = (Soft16_Image *) evas_cache_image_alone(&im->cache_entry);
 
-   new_im->flags.have_alpha = have_alpha;
+   new_im->cache_entry.flags.alpha = have_alpha;
 
    if (im->cache_entry.w > 0
        && im->cache_entry.h)
diff --git a/src/lib/engines/common_16/evas_soft16_rectangle.c b/src/lib/engines/common_16/evas_soft16_rectangle.c
index 0119b8b..eb6ae92 100644
--- a/src/lib/engines/common_16/evas_soft16_rectangle.c
+++ b/src/lib/engines/common_16/evas_soft16_rectangle.c
@@ -54,7 +54,7 @@ _soft16_rectangle_draw_int(Soft16_Image *dst, RGBA_Draw_Context *dc,
 
    dst_offset = dr.x + (dr.y * dst->cache_entry.w);
 
-   if (!dst->flags.have_alpha)
+   if (!dst->cache_entry.flags.alpha)
       {
 	 DATA16 rgb565;
 	 DATA8 alpha;
diff --git a/src/lib/include/evas_common_soft16.h b/src/lib/include/evas_common_soft16.h
index a6cf0e3..dd63ba3 100644
--- a/src/lib/include/evas_common_soft16.h
+++ b/src/lib/include/evas_common_soft16.h
@@ -95,7 +95,7 @@ struct _Soft16_Image
 
    struct
    {
-     unsigned char  have_alpha  : 1; // 1 if we have halpha
+/*      unsigned char  have_alpha  : 1; // 1 if we have halpha */
      unsigned char  free_pixels : 1; // 1 if pixels should be freed
      unsigned char  free_alpha  : 1; // 1 if alpha mask should be freed
    } flags;
diff --git a/src/modules/engines/software_16/evas_engine.c b/src/modules/engines/software_16/evas_engine.c
index 5a5ba71..76b591b 100644
--- a/src/modules/engines/software_16/evas_engine.c
+++ b/src/modules/engines/software_16/evas_engine.c
@@ -330,7 +330,7 @@ eng_image_alpha_get(void *data, void *image)
 
    if (!image) return 0;
    im = image;
-   return im->flags.have_alpha;
+   return im->cache_entry.flags.alpha;
 }
 
 static int
@@ -503,7 +503,7 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
    old_im = image;
    if ((DATA16 *)image_data == old_im->pixels) return old_im;
 
-   new_im = (Soft16_Image *) evas_cache_image_copied_data(evas_common_soft16_image_cache_get(), old_im->cache_entry.w, old_im->cache_entry.h, image_data, old_im->flags.have_alpha, EVAS_COLORSPACE_RGB565_A5P);
+   new_im = (Soft16_Image *) evas_cache_image_copied_data(evas_common_soft16_image_cache_get(), old_im->cache_entry.w, old_im->cache_entry.h, image_data, old_im->cache_entry.flags.alpha, EVAS_COLORSPACE_RGB565_A5P);
    evas_cache_image_drop(&old_im->cache_entry);
    return new_im;
 }
diff --git a/src/modules/engines/software_16_sdl/evas_engine.c b/src/modules/engines/software_16_sdl/evas_engine.c
index a8779de..ea4911e 100644
--- a/src/modules/engines/software_16_sdl/evas_engine.c
+++ b/src/modules/engines/software_16_sdl/evas_engine.c
@@ -108,7 +108,7 @@ _tmp_out_alloc(Render_Engine *re)
 	Soft16_Image *im;
 
         im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
-        im->flags.have_alpha = 0;
+        im->cache_entry.flags.alpha = 0;
         evas_cache_image_surface_alloc(&im->cache_entry, w, h);
 
 	re->tmp_out = im;
@@ -570,7 +570,7 @@ evas_engine_sdl16_image_alpha_get(void *data, void *image)
 
    if (!eim) return 1;
    im = (Soft16_Image *) eim->cache_entry.src;
-   if (im->flags.have_alpha) return 1;
+   if (im->cache_entry.flags.alpha) return 1;
    return 0;
 }
 
@@ -741,14 +741,14 @@ evas_engine_sdl16_image_alpha_set(void *data, void *image, int has_alpha)
 
    im = (Soft16_Image *) eim->cache_entry.src;
 
-   if (im->flags.have_alpha == has_alpha) return eim;
+   if (im->cache_entry.flags.alpha == has_alpha) return eim;
 
    eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_alone(&eim->cache_entry,
                                                                   NULL);
 
    im = (Soft16_Image *) eim->cache_entry.src;
 
-   im->flags.have_alpha = has_alpha;
+   im->cache_entry.flags.alpha = has_alpha;
    eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_dirty(&eim->cache_entry, 0, 0, eim->cache_entry.w, eim->cache_entry.h);
 
    return eim;
@@ -1193,7 +1193,7 @@ _sdl16_image_update_data(Engine_Image_Entry* dst, void* engine_data)
 /*              im->flags.have_alpha = 1; */
              im->alpha = NULL;
              im->flags.free_alpha = 0;
-             im->flags.have_alpha = 0;
+             im->cache_entry.flags.alpha = 0;
 
              dst->src->w = sdl->w;
              dst->src->h = sdl->h;
diff --git a/src/modules/engines/software_16_x11/evas_engine.c b/src/modules/engines/software_16_x11/evas_engine.c
index e03e3f2..5eca87a 100644
--- a/src/modules/engines/software_16_x11/evas_engine.c
+++ b/src/modules/engines/software_16_x11/evas_engine.c
@@ -90,7 +90,7 @@ _tmp_out_alloc(Render_Engine *re)
 	Soft16_Image *im;
 
         im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
-        im->flags.have_alpha = 0;
+        im->cache_entry.flags.alpha = 0;
         evas_cache_image_surface_alloc(&im->cache_entry, w, h);
 
 	re->tmp_out = im;

-- 
Enlightenment DR17 advanced canvas library



More information about the Pkg-e-commits mailing list