[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