Evas filters: Rename RGBA_Image::mask.data into image.data8

The structure should not be changed, despite the union modification.

I am renaming for consistency with older branches that had a mask
field in RGBA_Image. Also, the mask.data or data8 is really just
a way to avoid casting between DATA8 and DATA32 (and it shows
clearly what kind of data you are dealing with).
This commit is contained in:
Jean-Philippe Andre 2014-03-04 12:05:44 +09:00
parent 993bd965ed
commit ac8140ccd1
11 changed files with 50 additions and 56 deletions

View File

@ -495,7 +495,7 @@ evas_common_font_glyph_draw(RGBA_Font_Glyph *fg,
// FIXME: Font draw not optimized for Alpha targets! SLOW! // FIXME: Font draw not optimized for Alpha targets! SLOW!
// This is not pretty :) // This is not pretty :)
DATA8 *dst8 = dst_image->mask.data + x + (y * dst_pitch); DATA8 *dst8 = dst_image->image.data8 + x + (y * dst_pitch);
Alpha_Gfx_Func func; Alpha_Gfx_Func func;
DATA8 *src8; DATA8 *src8;
int row; int row;

View File

@ -36,8 +36,8 @@ evas_common_rgba_image_from_data(Image_Entry* ie_dst, int w, int h, DATA32 *imag
case EVAS_COLORSPACE_GRY8: case EVAS_COLORSPACE_GRY8:
dst->cache_entry.w = w; dst->cache_entry.w = w;
dst->cache_entry.h = h; dst->cache_entry.h = h;
dst->mask.data = (DATA8 *) image_data; dst->image.data8 = (DATA8 *) image_data;
dst->mask.no_free = 1; dst->image.no_free = 1;
dst->cache_entry.flags.alpha = 1; dst->cache_entry.flags.alpha = 1;
break; break;
default: default:
@ -75,7 +75,7 @@ evas_common_rgba_image_from_copied_data(Image_Entry* ie_dst, int w, int h, DATA3
case EVAS_COLORSPACE_GRY8: case EVAS_COLORSPACE_GRY8:
dst->cache_entry.flags.alpha = 1; dst->cache_entry.flags.alpha = 1;
if (image_data) if (image_data)
memcpy(dst->mask.data, image_data, w * h * sizeof(DATA8)); memcpy(dst->image.data8, image_data, w * h * sizeof(DATA8));
break; break;
default: default:
abort(); abort();

View File

@ -1360,7 +1360,7 @@ _fill_cpu(Evas_Filter_Command *cmd)
int step = fb->alpha_only ? sizeof(DATA8) : sizeof(DATA32); int step = fb->alpha_only ? sizeof(DATA8) : sizeof(DATA32);
int x = MAX(0, cmd->draw.clip.x); int x = MAX(0, cmd->draw.clip.x);
int y = MAX(0, cmd->draw.clip.y); int y = MAX(0, cmd->draw.clip.y);
DATA8 *ptr = ((RGBA_Image *) fb->backing)->mask.data; DATA8 *ptr = ((RGBA_Image *) fb->backing)->image.data8;
int w, h, k, j; int w, h, k, j;
if (!cmd->draw.clip_mode_lrtb) if (!cmd->draw.clip_mode_lrtb)

View File

@ -44,8 +44,8 @@ _image_draw_cpu_alpha2alpha(void *data EINA_UNUSED, void *context,
struct Alpha_Blend_Draw_Context *dc = context; struct Alpha_Blend_Draw_Context *dc = context;
RGBA_Image *src = image; RGBA_Image *src = image;
RGBA_Image *dst = surface; RGBA_Image *dst = surface;
DATA8* srcdata = src->mask.data; DATA8* srcdata = src->image.data8;
DATA8* dstdata = dst->mask.data; DATA8* dstdata = dst->image.data8;
Alpha_Gfx_Func func; Alpha_Gfx_Func func;
int y, sw, dw; int y, sw, dw;
@ -80,7 +80,7 @@ _image_draw_cpu_alpha2rgba(void *data EINA_UNUSED, void *context,
struct Alpha_Blend_Draw_Context *dc = context; struct Alpha_Blend_Draw_Context *dc = context;
RGBA_Image *src = image; RGBA_Image *src = image;
RGBA_Image *dst = surface; RGBA_Image *dst = surface;
DATA8* srcdata = src->mask.data; DATA8* srcdata = src->image.data8;
DATA32* dstdata = dst->image.data; DATA32* dstdata = dst->image.data;
RGBA_Gfx_Func func; RGBA_Gfx_Func func;
int y, sw, dw; int y, sw, dw;
@ -118,8 +118,8 @@ _filter_blend_cpu_generic_do(Evas_Filter_Command *cmd,
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(in->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in->image.data8, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out->image.data8, EINA_FALSE);
sx = 0; sx = 0;
sy = 0; sy = 0;
@ -178,7 +178,7 @@ _image_draw_cpu_rgba2alpha(void *data EINA_UNUSED, void *context EINA_UNUSED,
RGBA_Image *src = image; RGBA_Image *src = image;
RGBA_Image *dst = surface; RGBA_Image *dst = surface;
DATA32* srcdata = src->image.data; DATA32* srcdata = src->image.data;
DATA8* dstdata = dst->mask.data; DATA8* dstdata = dst->image.data8;
int x, y, sw, dw; int x, y, sw, dw;
#if RGBA2ALPHA_WEIGHTED #if RGBA2ALPHA_WEIGHTED
const int WR = 299; const int WR = 299;

View File

@ -313,11 +313,11 @@ _box_blur_horiz_apply_alpha(Evas_Filter_Command *cmd)
in = cmd->input->backing; in = cmd->input->backing;
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in->image.data8, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out->image.data8, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.w >= (2*r + 1), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.w >= (2*r + 1), EINA_FALSE);
_box_blur_horiz_alpha(in->mask.data, out->mask.data, r, _box_blur_horiz_alpha(in->image.data8, out->image.data8, r,
in->cache_entry.w, in->cache_entry.h); in->cache_entry.w, in->cache_entry.h);
return EINA_TRUE; return EINA_TRUE;
@ -337,11 +337,11 @@ _box_blur_vert_apply_alpha(Evas_Filter_Command *cmd)
in = cmd->input->backing; in = cmd->input->backing;
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in->image.data8, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out->image.data8, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.h >= (2*r + 1), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.h >= (2*r + 1), EINA_FALSE);
_box_blur_vert_alpha(in->mask.data, out->mask.data, r, _box_blur_vert_alpha(in->image.data8, out->image.data8, r,
in->cache_entry.w, in->cache_entry.h); in->cache_entry.w, in->cache_entry.h);
return EINA_TRUE; return EINA_TRUE;
@ -661,11 +661,11 @@ _gaussian_blur_horiz_apply_alpha(Evas_Filter_Command *cmd)
in = cmd->input->backing; in = cmd->input->backing;
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in->image.data8, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out->image.data8, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.w >= (2*r + 1), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.w >= (2*r + 1), EINA_FALSE);
_gaussian_blur_horiz_alpha(in->mask.data, out->mask.data, r, _gaussian_blur_horiz_alpha(in->image.data8, out->image.data8, r,
in->cache_entry.w, in->cache_entry.h); in->cache_entry.w, in->cache_entry.h);
return EINA_TRUE; return EINA_TRUE;
@ -685,11 +685,11 @@ _gaussian_blur_vert_apply_alpha(Evas_Filter_Command *cmd)
in = cmd->input->backing; in = cmd->input->backing;
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in->image.data8, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out->mask.data, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out->image.data8, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.h >= (2*r + 1), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(out->cache_entry.h >= (2*r + 1), EINA_FALSE);
_gaussian_blur_vert_alpha(in->mask.data, out->mask.data, r, _gaussian_blur_vert_alpha(in->image.data8, out->image.data8, r,
in->cache_entry.w, in->cache_entry.h); in->cache_entry.w, in->cache_entry.h);
return EINA_TRUE; return EINA_TRUE;

View File

@ -118,9 +118,9 @@ _bump_map_cpu_alpha_alpha(Evas_Filter_Command *cmd)
h = cmd->input->h; h = cmd->input->h;
EINA_SAFETY_ON_FALSE_RETURN_VAL(w > 2 && h > 2, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(w > 2 && h > 2, EINA_FALSE);
src = ((RGBA_Image *) cmd->input->backing)->mask.data; src = ((RGBA_Image *) cmd->input->backing)->image.data8;
map = ((RGBA_Image *) cmd->mask->backing)->mask.data; map = ((RGBA_Image *) cmd->mask->backing)->image.data8;
dst = ((RGBA_Image *) cmd->output->backing)->mask.data; dst = ((RGBA_Image *) cmd->output->backing)->image.data8;
EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(map, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(map, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
@ -255,8 +255,8 @@ _bump_map_cpu_alpha_rgba(Evas_Filter_Command *cmd)
h = cmd->input->h; h = cmd->input->h;
EINA_SAFETY_ON_FALSE_RETURN_VAL(w > 2 && h > 2, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(w > 2 && h > 2, EINA_FALSE);
src = ((RGBA_Image *) cmd->input->backing)->mask.data; src = ((RGBA_Image *) cmd->input->backing)->image.data8;
map = ((RGBA_Image *) cmd->mask->backing)->mask.data; map = ((RGBA_Image *) cmd->mask->backing)->image.data8;
dst = ((RGBA_Image *) cmd->output->backing)->image.data; dst = ((RGBA_Image *) cmd->output->backing)->image.data;
EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(map, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(map, EINA_FALSE);

View File

@ -97,8 +97,8 @@ _filter_curve_cpu_alpha(Evas_Filter_Command *cmd)
out = cmd->output->backing; out = cmd->output->backing;
EINA_SAFETY_ON_NULL_RETURN_VAL(in, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(in, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(out, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(out, EINA_FALSE);
src = in->mask.data; src = in->image.data8;
dst = out->mask.data; dst = out->image.data8;
EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);
curve = cmd->curve.data; curve = cmd->curve.data;

View File

@ -206,9 +206,9 @@ _filter_displace_cpu_alpha(Evas_Filter_Command *cmd)
EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->mask->backing, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->mask->backing, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->output->backing, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->output->backing, EINA_FALSE);
src = ((RGBA_Image *) cmd->input->backing)->mask.data; src = ((RGBA_Image *) cmd->input->backing)->image.data8;
map_start = ((RGBA_Image *) cmd->mask->backing)->image.data; map_start = ((RGBA_Image *) cmd->mask->backing)->image.data;
dst = ((RGBA_Image *) cmd->output->backing)->mask.data; dst = ((RGBA_Image *) cmd->output->backing)->image.data8;
EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(map_start, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(map_start, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE);

View File

@ -79,8 +79,8 @@ _mask_cpu_alpha_alpha_alpha(Evas_Filter_Command *cmd)
h = cmd->input->h; h = cmd->input->h;
mw = cmd->mask->w; mw = cmd->mask->w;
mh = cmd->mask->h; mh = cmd->mask->h;
src = in->mask.data; src = in->image.data8;
dst = out->mask.data; dst = out->image.data8;
EINA_SAFETY_ON_FALSE_RETURN_VAL((w > 0) && (mw > 0), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL((w > 0) && (mw > 0), EINA_FALSE);
@ -106,7 +106,7 @@ _mask_cpu_alpha_alpha_alpha(Evas_Filter_Command *cmd)
mask = fb->backing; mask = fb->backing;
} }
msk = mask->mask.data; msk = mask->image.data8;
// First pass: copy to dest // First pass: copy to dest
if (src != dst) if (src != dst)
@ -119,7 +119,7 @@ _mask_cpu_alpha_alpha_alpha(Evas_Filter_Command *cmd)
if (my >= mh) if (my >= mh)
{ {
my = 0; my = 0;
msk = mask->mask.data; msk = mask->image.data8;
} }
for (step = 0; step < stepcount; step++, dst += stepsize) for (step = 0; step < stepcount; step++, dst += stepsize)
@ -189,7 +189,7 @@ _mask_cpu_alpha_rgba_rgba(Evas_Filter_Command *cmd)
h = cmd->input->h; h = cmd->input->h;
mw = cmd->mask->w; mw = cmd->mask->w;
mh = cmd->mask->h; mh = cmd->mask->h;
src = in->mask.data; src = in->image.data8;
dst = out->image.data; dst = out->image.data;
// Stretch if necessary. // Stretch if necessary.
@ -286,7 +286,7 @@ _mask_cpu_alpha_alpha_rgba(Evas_Filter_Command *cmd)
h = cmd->input->h; h = cmd->input->h;
mw = cmd->mask->w; mw = cmd->mask->w;
mh = cmd->mask->h; mh = cmd->mask->h;
src = in->mask.data; src = in->image.data8;
dst = out->image.data; dst = out->image.data;
color = ARGB_JOIN(cmd->draw.A, cmd->draw.R, cmd->draw.G, cmd->draw.B); color = ARGB_JOIN(cmd->draw.A, cmd->draw.R, cmd->draw.G, cmd->draw.B);
@ -311,7 +311,7 @@ _mask_cpu_alpha_alpha_rgba(Evas_Filter_Command *cmd)
mask = fb->backing; mask = fb->backing;
} }
msk = mask->mask.data; msk = mask->image.data8;
stepsize = MIN(mw, w); stepsize = MIN(mw, w);
stepcount = w / stepsize; stepcount = w / stepsize;
span = malloc(stepsize * sizeof(DATA8)); span = malloc(stepsize * sizeof(DATA8));
@ -324,7 +324,7 @@ _mask_cpu_alpha_alpha_rgba(Evas_Filter_Command *cmd)
if (my >= mh) if (my >= mh)
{ {
my = 0; my = 0;
msk = mask->mask.data; msk = mask->image.data8;
} }
for (step = 0; step < stepcount; step++, dst += stepsize, src += stepsize) for (step = 0; step < stepcount; step++, dst += stepsize, src += stepsize)

View File

@ -27,8 +27,8 @@ _vflip_cpu(Evas_Filter_Command *cmd)
EINA_SAFETY_ON_FALSE_RETURN_VAL(cmd->output->h == h, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(cmd->output->h == h, EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(cmd->output->alpha_only == cmd->input->alpha_only, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(cmd->output->alpha_only == cmd->input->alpha_only, EINA_FALSE);
in = ((RGBA_Image *) cmd->input->backing)->mask.data; in = ((RGBA_Image *) cmd->input->backing)->image.data8;
out = ((RGBA_Image *) cmd->output->backing)->mask.data; out = ((RGBA_Image *) cmd->output->backing)->image.data8;
datasize = cmd->input->alpha_only ? sizeof(DATA8) : sizeof(DATA32); datasize = cmd->input->alpha_only ? sizeof(DATA8) : sizeof(DATA32);
stride = w * datasize; stride = w * datasize;

View File

@ -801,20 +801,14 @@ struct _RGBA_Image
Eina_Bool dirty : 1; Eina_Bool dirty : 1;
} cs; } cs;
union /* RGBA stuff */
{ struct {
/* RGBA stuff */ union {
struct { DATA32 *data; /* Normal image */
DATA32 *data; DATA8 *data8; /* Alpha Mask stuff */
Eina_Bool no_free : 1; };
} image; Eina_Bool no_free : 1;
} image;
/* Alpha Mask stuff */
struct {
DATA8 *data;
Eina_Bool no_free : 1;
} mask;
};
struct { struct {
SLK(lock); SLK(lock);