summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-11-13 11:27:50 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-11-13 12:20:57 +0900
commit05aee3e3706867605d3b1bb84c3a70ccafba0673 (patch)
treecf2ee2630803ac7cadacd2a51c987e65d9d69426
parent35beedd3d7e84723fb5ce7aca7102b594edece66 (diff)
Evas: Don't pass whole RGBA_Image to low-level render functions
Idea originated from Cedric the b0rker. This is a big fat search-and-replace commit. This commit also introduces space changes... Sorry for the mix. NOTE: This commit may have one side effect as there was some very dubious code chaning the dst image's alpha flag in the Gfx get functions. Logically this didn't make sense (at draw time the dst alpha should already be well defined), so it should be safe.
-rw-r--r--src/lib/evas/common/evas_blend_main.c157
-rw-r--r--src/lib/evas/common/evas_blend_private.h20
-rw-r--r--src/lib/evas/common/evas_font_draw.c4
-rw-r--r--src/lib/evas/common/evas_line_main.c20
-rw-r--r--src/lib/evas/common/evas_map_image_internal.c8
-rw-r--r--src/lib/evas/common/evas_op_add_main_.c146
-rw-r--r--src/lib/evas/common/evas_op_blend_main_.c156
-rw-r--r--src/lib/evas/common/evas_op_copy_main_.c174
-rw-r--r--src/lib/evas/common/evas_op_mask_main_.c88
-rw-r--r--src/lib/evas/common/evas_op_mul_main_.c88
-rw-r--r--src/lib/evas/common/evas_op_sub_main_.c146
-rw-r--r--src/lib/evas/common/evas_polygon_main.c4
-rw-r--r--src/lib/evas/common/evas_rectangle_main.c4
-rw-r--r--src/lib/evas/common/evas_scale_sample.c8
-rw-r--r--src/lib/evas/common/evas_scale_smooth_scaler_down.c4
-rw-r--r--src/lib/evas/common/evas_scale_smooth_scaler_noscale.c4
-rw-r--r--src/lib/evas/common/evas_scale_smooth_scaler_up.c4
-rw-r--r--src/lib/evas/filters/evas_filter_blend.c4
-rw-r--r--src/lib/evas/filters/evas_filter_mask.c6
-rw-r--r--src/lib/evas/include/evas_common_private.h22
20 files changed, 490 insertions, 577 deletions
diff --git a/src/lib/evas/common/evas_blend_main.c b/src/lib/evas/common/evas_blend_main.c
index b0221b135d..ebac8f35b5 100644
--- a/src/lib/evas/common/evas_blend_main.c
+++ b/src/lib/evas/common/evas_blend_main.c
@@ -24,43 +24,43 @@ evas_gfx_compositor_get(unsigned char op)
24 RGBA_Gfx_Compositor *comp; 24 RGBA_Gfx_Compositor *comp;
25 25
26 switch (op) 26 switch (op)
27 { 27 {
28 case _EVAS_RENDER_BLEND: 28 case _EVAS_RENDER_BLEND:
29 comp = evas_common_gfx_compositor_blend_get(); 29 comp = evas_common_gfx_compositor_blend_get();
30 break; 30 break;
31 case _EVAS_RENDER_BLEND_REL: 31 case _EVAS_RENDER_BLEND_REL:
32 comp = evas_common_gfx_compositor_blend_rel_get(); 32 comp = evas_common_gfx_compositor_blend_rel_get();
33 break; 33 break;
34 case _EVAS_RENDER_COPY: 34 case _EVAS_RENDER_COPY:
35 comp = evas_common_gfx_compositor_copy_get(); 35 comp = evas_common_gfx_compositor_copy_get();
36 break; 36 break;
37 case _EVAS_RENDER_COPY_REL: 37 case _EVAS_RENDER_COPY_REL:
38 comp = evas_common_gfx_compositor_copy_rel_get(); 38 comp = evas_common_gfx_compositor_copy_rel_get();
39 break; 39 break;
40/* 40 /*
41 case _EVAS_RENDER_ADD: 41 case _EVAS_RENDER_ADD:
42 comp = evas_common_gfx_compositor_add_get(); 42 comp = evas_common_gfx_compositor_add_get();
43 break; 43 break;
44 case _EVAS_RENDER_ADD_REL: 44 case _EVAS_RENDER_ADD_REL:
45 comp = evas_common_gfx_compositor_add_rel_get(); 45 comp = evas_common_gfx_compositor_add_rel_get();
46 break; 46 break;
47 case _EVAS_RENDER_SUB: 47 case _EVAS_RENDER_SUB:
48 comp = evas_common_gfx_compositor_sub_get(); 48 comp = evas_common_gfx_compositor_sub_get();
49 break; 49 break;
50 case _EVAS_RENDER_SUB_REL: 50 case _EVAS_RENDER_SUB_REL:
51 comp = evas_common_gfx_compositor_sub_rel_get(); 51 comp = evas_common_gfx_compositor_sub_rel_get();
52 break; 52 break;
53*/ 53 */
54 case _EVAS_RENDER_MASK: 54 case _EVAS_RENDER_MASK:
55 comp = evas_common_gfx_compositor_mask_get(); 55 comp = evas_common_gfx_compositor_mask_get();
56 break; 56 break;
57 case _EVAS_RENDER_MUL: 57 case _EVAS_RENDER_MUL:
58 comp = evas_common_gfx_compositor_mul_get(); 58 comp = evas_common_gfx_compositor_mul_get();
59 break; 59 break;
60 default: 60 default:
61 comp = evas_common_gfx_compositor_blend_get(); 61 comp = evas_common_gfx_compositor_blend_get();
62 break; 62 break;
63 } 63 }
64 return comp; 64 return comp;
65} 65}
66 66
@@ -88,7 +88,7 @@ evas_common_blend_init(void)
88 comp = evas_common_gfx_compositor_blend_rel_get(); 88 comp = evas_common_gfx_compositor_blend_rel_get();
89 if (comp) comp->init(); 89 if (comp) comp->init();
90 90
91/* 91 /*
92 comp = evas_common_gfx_compositor_add_get(); 92 comp = evas_common_gfx_compositor_add_get();
93 if (comp) comp->init(); 93 if (comp) comp->init();
94 comp = evas_common_gfx_compositor_add_rel_get(); 94 comp = evas_common_gfx_compositor_add_rel_get();
@@ -120,7 +120,7 @@ evas_common_blend_shutdown(void)
120 comp = evas_common_gfx_compositor_blend_rel_get(); 120 comp = evas_common_gfx_compositor_blend_rel_get();
121 if (comp) comp->shutdown(); 121 if (comp) comp->shutdown();
122 122
123/* 123 /*
124 comp = evas_common_gfx_compositor_add_get(); 124 comp = evas_common_gfx_compositor_add_get();
125 if (comp) comp->shutdown(); 125 if (comp) comp->shutdown();
126 comp = evas_common_gfx_compositor_add_rel_get(); 126 comp = evas_common_gfx_compositor_add_rel_get();
@@ -129,7 +129,8 @@ evas_common_blend_shutdown(void)
129 if (comp) comp->shutdown(); 129 if (comp) comp->shutdown();
130 comp = evas_common_gfx_compositor_sub_rel_get(); 130 comp = evas_common_gfx_compositor_sub_rel_get();
131 if (comp) comp->shutdown(); 131 if (comp) comp->shutdown();
132*/ 132 */
133
133 comp = evas_common_gfx_compositor_mask_get(); 134 comp = evas_common_gfx_compositor_mask_get();
134 if (comp) comp->shutdown(); 135 if (comp) comp->shutdown();
135 136
@@ -139,12 +140,12 @@ evas_common_blend_shutdown(void)
139 140
140 141
141RGBA_Gfx_Func 142RGBA_Gfx_Func
142evas_common_gfx_func_composite_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels, int op) 143evas_common_gfx_func_composite_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels, int op)
143{ 144{
144 RGBA_Gfx_Compositor *comp; 145 RGBA_Gfx_Compositor *comp;
145 RGBA_Gfx_Func func = NULL; 146 RGBA_Gfx_Func func = NULL;
146 147
147 if (src && (!src->cache_entry.flags.alpha)) 148 if (!src_alpha)
148 { 149 {
149 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY; 150 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY;
150 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL; 151 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL;
@@ -152,14 +153,14 @@ evas_common_gfx_func_composite_pixel_span_get(RGBA_Image *src, RGBA_Image *dst,
152 153
153 comp = evas_gfx_compositor_get(op); 154 comp = evas_gfx_compositor_get(op);
154 if (comp) 155 if (comp)
155 func = comp->composite_pixel_span_get(src, dst, pixels); 156 func = comp->composite_pixel_span_get(src_alpha, src_sparse_alpha, dst_alpha, pixels);
156 if (func) 157 if (func)
157 return func; 158 return func;
158 return _composite_span_nothing; 159 return _composite_span_nothing;
159} 160}
160 161
161RGBA_Gfx_Func 162RGBA_Gfx_Func
162evas_common_gfx_func_composite_color_span_get(DATA32 col, RGBA_Image *dst, int pixels, int op) 163evas_common_gfx_func_composite_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels, int op)
163{ 164{
164 RGBA_Gfx_Compositor *comp; 165 RGBA_Gfx_Compositor *comp;
165 RGBA_Gfx_Func func = NULL; 166 RGBA_Gfx_Func func = NULL;
@@ -171,80 +172,80 @@ evas_common_gfx_func_composite_color_span_get(DATA32 col, RGBA_Image *dst, int p
171 } 172 }
172 comp = evas_gfx_compositor_get(op); 173 comp = evas_gfx_compositor_get(op);
173 if (comp) 174 if (comp)
174 func = comp->composite_color_span_get(col, dst, pixels); 175 func = comp->composite_color_span_get(col, dst_alpha, pixels);
175 if (func) 176 if (func)
176 return func; 177 return func;
177 return _composite_span_nothing; 178 return _composite_span_nothing;
178} 179}
179 180
180RGBA_Gfx_Func 181RGBA_Gfx_Func
181evas_common_gfx_func_composite_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels, int op) 182evas_common_gfx_func_composite_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels, int op)
182{ 183{
183 RGBA_Gfx_Compositor *comp; 184 RGBA_Gfx_Compositor *comp;
184 RGBA_Gfx_Func func = NULL; 185 RGBA_Gfx_Func func = NULL;
185 186
186 if ((src && (!src->cache_entry.flags.alpha)) && ((col & 0xff000000) == 0xff000000)) 187 if ((!src_alpha) && ((col & 0xff000000) == 0xff000000))
187 { 188 {
188 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY; 189 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY;
189 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL; 190 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL;
190 } 191 }
191 comp = evas_gfx_compositor_get(op); 192 comp = evas_gfx_compositor_get(op);
192 if (comp) 193 if (comp)
193 func = comp->composite_pixel_color_span_get(src, col, dst, pixels); 194 func = comp->composite_pixel_color_span_get(src_alpha, src_sparse_alpha, col, dst_alpha, pixels);
194 if (func) 195 if (func)
195 return func; 196 return func;
196 return _composite_span_nothing; 197 return _composite_span_nothing;
197} 198}
198 199
199RGBA_Gfx_Func 200RGBA_Gfx_Func
200evas_common_gfx_func_composite_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels, int op) 201evas_common_gfx_func_composite_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels, int op)
201{ 202{
202 RGBA_Gfx_Compositor *comp; 203 RGBA_Gfx_Compositor *comp;
203 RGBA_Gfx_Func func = NULL; 204 RGBA_Gfx_Func func = NULL;
204 205
205 comp = evas_gfx_compositor_get(op); 206 comp = evas_gfx_compositor_get(op);
206 if (comp) 207 if (comp)
207 func = comp->composite_mask_color_span_get(col, dst, pixels); 208 func = comp->composite_mask_color_span_get(col, dst_alpha, pixels);
208 if (func) 209 if (func)
209 return func; 210 return func;
210 return _composite_span_nothing; 211 return _composite_span_nothing;
211} 212}
212 213
213RGBA_Gfx_Func 214RGBA_Gfx_Func
214evas_common_gfx_func_composite_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels, int op) 215evas_common_gfx_func_composite_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels, int op)
215{ 216{
216 RGBA_Gfx_Compositor *comp; 217 RGBA_Gfx_Compositor *comp;
217 RGBA_Gfx_Func func = NULL; 218 RGBA_Gfx_Func func = NULL;
218 219
219 comp = evas_gfx_compositor_get(op); 220 comp = evas_gfx_compositor_get(op);
220 if (comp) 221 if (comp)
221 func = comp->composite_pixel_mask_span_get(src, dst, pixels); 222 func = comp->composite_pixel_mask_span_get(src_alpha, src_sparse_alpha, dst_alpha, pixels);
222 if (func) 223 if (func)
223 return func; 224 return func;
224 return _composite_span_nothing; 225 return _composite_span_nothing;
225} 226}
226 227
227RGBA_Gfx_Pt_Func 228RGBA_Gfx_Pt_Func
228evas_common_gfx_func_composite_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst, int op) 229evas_common_gfx_func_composite_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha, int op)
229{ 230{
230 RGBA_Gfx_Compositor *comp; 231 RGBA_Gfx_Compositor *comp;
231 RGBA_Gfx_Pt_Func func = NULL; 232 RGBA_Gfx_Pt_Func func = NULL;
232 233
233 if (!src_flags.alpha) 234 if (!src_alpha)
234 { 235 {
235 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY; 236 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY;
236 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL; 237 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL;
237 } 238 }
238 comp = evas_gfx_compositor_get(op); 239 comp = evas_gfx_compositor_get(op);
239 if (comp) 240 if (comp)
240 func = comp->composite_pixel_pt_get(src_flags, dst); 241 func = comp->composite_pixel_pt_get(src_alpha, dst_alpha);
241 if (func) 242 if (func)
242 return func; 243 return func;
243 return _composite_pt_nothing; 244 return _composite_pt_nothing;
244} 245}
245 246
246RGBA_Gfx_Pt_Func 247RGBA_Gfx_Pt_Func
247evas_common_gfx_func_composite_color_pt_get(DATA32 col, RGBA_Image *dst, int op) 248evas_common_gfx_func_composite_color_pt_get(DATA32 col, Eina_Bool dst_alpha, int op)
248{ 249{
249 RGBA_Gfx_Compositor *comp; 250 RGBA_Gfx_Compositor *comp;
250 RGBA_Gfx_Pt_Func func = NULL; 251 RGBA_Gfx_Pt_Func func = NULL;
@@ -256,55 +257,55 @@ evas_common_gfx_func_composite_color_pt_get(DATA32 col, RGBA_Image *dst, int op)
256 } 257 }
257 comp = evas_gfx_compositor_get(op); 258 comp = evas_gfx_compositor_get(op);
258 if (comp) 259 if (comp)
259 func = comp->composite_color_pt_get(col, dst); 260 func = comp->composite_color_pt_get(col, dst_alpha);
260 if (func) 261 if (func)
261 return func; 262 return func;
262 return _composite_pt_nothing; 263 return _composite_pt_nothing;
263} 264}
264 265
265RGBA_Gfx_Pt_Func 266RGBA_Gfx_Pt_Func
266evas_common_gfx_func_composite_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst, int op) 267evas_common_gfx_func_composite_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha, int op)
267{ 268{
268 RGBA_Gfx_Compositor *comp; 269 RGBA_Gfx_Compositor *comp;
269 RGBA_Gfx_Pt_Func func = NULL; 270 RGBA_Gfx_Pt_Func func = NULL;
270 271
271 if ((!src_flags.alpha) && ((col & 0xff000000) == 0xff000000)) 272 if ((!src_alpha) && ((col & 0xff000000) == 0xff000000))
272 { 273 {
273 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY; 274 if (op == _EVAS_RENDER_BLEND) op = _EVAS_RENDER_COPY;
274 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL; 275 else if (op == _EVAS_RENDER_BLEND_REL) op = _EVAS_RENDER_COPY_REL;
275 } 276 }
276 comp = evas_gfx_compositor_get(op); 277 comp = evas_gfx_compositor_get(op);
277 if (comp) 278 if (comp)
278 func = comp->composite_pixel_color_pt_get(src_flags, col, dst); 279 func = comp->composite_pixel_color_pt_get(src_alpha, col, dst_alpha);
279 if (func) 280 if (func)
280 return func; 281 return func;
281 return _composite_pt_nothing; 282 return _composite_pt_nothing;
282} 283}
283 284
284RGBA_Gfx_Pt_Func 285RGBA_Gfx_Pt_Func
285evas_common_gfx_func_composite_mask_color_pt_get(DATA32 col, RGBA_Image *dst, int op) 286evas_common_gfx_func_composite_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha, int op)
286{ 287{
287 RGBA_Gfx_Compositor *comp; 288 RGBA_Gfx_Compositor *comp;
288 RGBA_Gfx_Pt_Func func = NULL; 289 RGBA_Gfx_Pt_Func func = NULL;
289 290
290 comp = evas_gfx_compositor_get(op); 291 comp = evas_gfx_compositor_get(op);
291 if (comp) 292 if (comp)
292 func = comp->composite_mask_color_pt_get(col, dst); 293 func = comp->composite_mask_color_pt_get(col, dst_alpha);
293 if (func) 294 if (func)
294 return func; 295 return func;
295 return _composite_pt_nothing; 296 return _composite_pt_nothing;
296} 297}
297 298
298RGBA_Gfx_Pt_Func 299RGBA_Gfx_Pt_Func
299evas_common_gfx_func_composite_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst, int op) 300evas_common_gfx_func_composite_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha, int op)
300{ 301{
301 RGBA_Gfx_Compositor *comp; 302 RGBA_Gfx_Compositor *comp;
302 RGBA_Gfx_Pt_Func func = NULL; 303 RGBA_Gfx_Pt_Func func = NULL;
303 304
304 comp = evas_gfx_compositor_get(op); 305 comp = evas_gfx_compositor_get(op);
305 if (comp) 306 if (comp)
306 func = comp->composite_pixel_mask_pt_get(src_flags, dst); 307 func = comp->composite_pixel_mask_pt_get(src_alpha, dst_alpha);
307 if (func) 308 if (func)
308 return func; 309 return func;
309 return _composite_pt_nothing; 310 return _composite_pt_nothing;
310} 311}
diff --git a/src/lib/evas/common/evas_blend_private.h b/src/lib/evas/common/evas_blend_private.h
index 00291981bf..f96e004985 100644
--- a/src/lib/evas/common/evas_blend_private.h
+++ b/src/lib/evas/common/evas_blend_private.h
@@ -15,17 +15,17 @@ RGBA_Gfx_Compositor *evas_common_gfx_compositor_sub_rel_get(void);
15RGBA_Gfx_Compositor *evas_common_gfx_compositor_mask_get (void); 15RGBA_Gfx_Compositor *evas_common_gfx_compositor_mask_get (void);
16RGBA_Gfx_Compositor *evas_common_gfx_compositor_mul_get (void); 16RGBA_Gfx_Compositor *evas_common_gfx_compositor_mul_get (void);
17 17
18RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_span_get (RGBA_Image *src, RGBA_Image *dst, int pixels, int op); 18RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_span_get (Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels, int op);
19RGBA_Gfx_Func evas_common_gfx_func_composite_color_span_get (DATA32 col, RGBA_Image *dst, int pixels, int op); 19RGBA_Gfx_Func evas_common_gfx_func_composite_color_span_get (DATA32 col, Eina_Bool dst_alpha, int pixels, int op);
20RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_color_span_get (RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels, int op); 20RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_color_span_get (Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels, int op);
21RGBA_Gfx_Func evas_common_gfx_func_composite_mask_color_span_get (DATA32 col, RGBA_Image *dst, int pixels, int op); 21RGBA_Gfx_Func evas_common_gfx_func_composite_mask_color_span_get (DATA32 col, Eina_Bool dst_alpha, int pixels, int op);
22RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_mask_span_get (RGBA_Image *src, RGBA_Image *dst, int pixels, int op); 22RGBA_Gfx_Func evas_common_gfx_func_composite_pixel_mask_span_get (Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels, int op);
23 23
24RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_pt_get (Image_Entry_Flags src_flags, RGBA_Image *dst, int op); 24RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_pt_get (Eina_Bool src_alpha, Eina_Bool dst_alpha, int op);
25RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_color_pt_get (DATA32 col, RGBA_Image *dst, int op); 25RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_color_pt_get (DATA32 col, Eina_Bool dst_alpha, int op);
26RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_color_pt_get (Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst, int op); 26RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_color_pt_get (Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha, int op);
27RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_mask_color_pt_get (DATA32 col, RGBA_Image *dst, int op); 27RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_mask_color_pt_get (DATA32 col, Eina_Bool dst_alpha, int op);
28RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_mask_pt_get (Image_Entry_Flags src_flags, RGBA_Image *dst, int op); 28RGBA_Gfx_Pt_Func evas_common_gfx_func_composite_pixel_mask_pt_get (Eina_Bool src_alpha, Eina_Bool dst_alpha, int op);
29 29
30/* Alpha/mask functions */ 30/* Alpha/mask functions */
31Alpha_Gfx_Func evas_common_alpha_func_get (int op); 31Alpha_Gfx_Func evas_common_alpha_func_get (int op);
diff --git a/src/lib/evas/common/evas_font_draw.c b/src/lib/evas/common/evas_font_draw.c
index 7ff2f23233..b243667d81 100644
--- a/src/lib/evas/common/evas_font_draw.c
+++ b/src/lib/evas/common/evas_font_draw.c
@@ -255,7 +255,7 @@ evas_common_font_draw_cb(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, E
255 im_h = dst->cache_entry.h; 255 im_h = dst->cache_entry.h;
256 256
257// evas_common_font_size_use(fn); 257// evas_common_font_size_use(fn);
258 func = evas_common_gfx_func_composite_mask_color_span_get(dc->col.col, dst, 1, dc->render_op); 258 func = evas_common_gfx_func_composite_mask_color_span_get(dc->col.col, dst->cache_entry.flags.alpha, 1, dc->render_op);
259 259
260 if (!dc->cutout.rects) 260 if (!dc->cutout.rects)
261 { 261 {
@@ -366,7 +366,7 @@ evas_common_font_draw_prepare_cutout(Cutout_Rects **reuse, RGBA_Image *dst, RGBA
366 im_w = dst->cache_entry.w; 366 im_w = dst->cache_entry.w;
367 im_h = dst->cache_entry.h; 367 im_h = dst->cache_entry.h;
368 368
369 *func = evas_common_gfx_func_composite_mask_color_span_get(dc->col.col, dst, 1, dc->render_op); 369 *func = evas_common_gfx_func_composite_mask_color_span_get(dc->col.col, dst->cache_entry.flags.alpha, 1, dc->render_op);
370 370
371 evas_common_draw_context_clip_clip(dc, 0, 0, im_w, im_h); 371 evas_common_draw_context_clip_clip(dc, 0, 0, im_w, im_h);
372 if (dc->clip.w <= 0) return EINA_FALSE; 372 if (dc->clip.w <= 0) return EINA_FALSE;
diff --git a/src/lib/evas/common/evas_line_main.c b/src/lib/evas/common/evas_line_main.c
index 9d3aa6bae0..8301dccee9 100644
--- a/src/lib/evas/common/evas_line_main.c
+++ b/src/lib/evas/common/evas_line_main.c
@@ -49,7 +49,7 @@ _evas_draw_point(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y)
49# endif 49# endif
50#endif 50#endif
51 { 51 {
52 pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst, dc->render_op); 52 pfunc = evas_common_gfx_func_composite_color_pt_get(dc->col.col, dst->cache_entry.flags.alpha, dc->render_op);
53 if (pfunc) 53 if (pfunc)
54 pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x); 54 pfunc(0, 255, dc->col.col, dst->image.data + (dst->cache_entry.w * y) + x);
55 } 55 }
@@ -70,7 +70,7 @@ evas_common_line_point_draw(RGBA_Image *dst, int clip_x, int clip_y, int clip_w,
70 if ((!no_cuse) && (!IN_RECT(x, y, clip_x, clip_y, clip_w, clip_h))) 70 if ((!no_cuse) && (!IN_RECT(x, y, clip_x, clip_y, clip_w, clip_h)))
71 return; 71 return;
72 72
73 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, render_op); 73 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst->cache_entry.flags.alpha, render_op);
74 if (pfunc) 74 if (pfunc)
75 pfunc(0, 255, color, dst->image.data + (dst->cache_entry.w * y) + x); 75 pfunc(0, 255, color, dst->image.data + (dst->cache_entry.w * y) + x);
76} 76}
@@ -147,7 +147,7 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
147# endif 147# endif
148#endif 148#endif
149 { 149 {
150 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op); 150 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst->cache_entry.flags.alpha, len, dc->render_op);
151 if (sfunc) 151 if (sfunc)
152 sfunc(NULL, NULL, color, p, len); 152 sfunc(NULL, NULL, color, p, len);
153 } 153 }
@@ -155,7 +155,7 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
155 return; 155 return;
156 } 156 }
157 157
158 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); 158 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst->cache_entry.flags.alpha, dc->render_op);
159 if (!pfunc) return; 159 if (!pfunc) return;
160 160
161 if (dx == 0) 161 if (dx == 0)
@@ -488,13 +488,13 @@ _draw_render_thread_simple_line(RGBA_Image *dst, int clip_x, int clip_y, int cli
488 488
489 len = x1 - x0 + 1; 489 len = x1 - x0 + 1;
490 p = dst->image.data + (dstw * y0) + x0; 490 p = dst->image.data + (dstw * y0) + x0;
491 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, render_op); 491 sfunc = evas_common_gfx_func_composite_color_span_get(color, dst->cache_entry.flags.alpha, len, render_op);
492 if (sfunc) sfunc(NULL, NULL, color, p, len); 492 if (sfunc) sfunc(NULL, NULL, color, p, len);
493 } 493 }
494 return; 494 return;
495 } 495 }
496 496
497 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, render_op); 497 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst->cache_entry.flags.alpha, render_op);
498 if (!pfunc) return; 498 if (!pfunc) return;
499 499
500 if (dx == 0) 500 if (dx == 0)
@@ -767,7 +767,7 @@ evas_common_line_draw_line(RGBA_Image *dst, int clip_x, int clip_y, int clip_w,
767 return; 767 return;
768 } 768 }
769 769
770 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, render_op); 770 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst->cache_entry.flags.alpha, render_op);
771 if (!pfunc) return; 771 if (!pfunc) return;
772 772
773 clx = clip_x; 773 clx = clip_x;
@@ -896,7 +896,7 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
896 } 896 }
897 897
898 color = dc->col.col; 898 color = dc->col.col;
899 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst, dc->render_op); 899 pfunc = evas_common_gfx_func_composite_color_pt_get(color, dst->cache_entry.flags.alpha, dc->render_op);
900 if (!pfunc) return; 900 if (!pfunc) return;
901 901
902 clx = dc->clip.x; 902 clx = dc->clip.x;
@@ -1053,7 +1053,7 @@ evas_common_line_draw_line_aa(RGBA_Image *dst, int clip_x, int clip_y, int clip_
1053 return; 1053 return;
1054 } 1054 }
1055 1055
1056 pfunc = evas_common_gfx_func_composite_mask_color_pt_get(color, dst, render_op); 1056 pfunc = evas_common_gfx_func_composite_mask_color_pt_get(color, dst->cache_entry.flags.alpha, render_op);
1057 if (!pfunc) return; 1057 if (!pfunc) return;
1058 1058
1059 clx = clip_x; 1059 clx = clip_x;
@@ -1202,7 +1202,7 @@ _evas_draw_line_aa(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x
1202 } 1202 }
1203 1203
1204 color = dc->col.col; 1204 color = dc->col.col;
1205 pfunc = evas_common_gfx_func_composite_mask_color_pt_get(color, dst, dc->render_op); 1205 pfunc = evas_common_gfx_func_composite_mask_color_pt_get(color, dst->cache_entry.flags.alpha, dc->render_op);
1206 if (!pfunc) return; 1206 if (!pfunc) return;
1207 1207
1208 clx = dc->clip.x; 1208 clx = dc->clip.x;
diff --git a/src/lib/evas/common/evas_map_image_internal.c b/src/lib/evas/common/evas_map_image_internal.c
index 9a537920a8..eb1b77056e 100644
--- a/src/lib/evas/common/evas_map_image_internal.c
+++ b/src/lib/evas/common/evas_map_image_internal.c
@@ -93,9 +93,9 @@ FUNC_NAME(RGBA_Image *src, RGBA_Image *dst,
93 pa = src->cache_entry.flags.alpha; 93 pa = src->cache_entry.flags.alpha;
94 if (havea) src->cache_entry.flags.alpha = 1; 94 if (havea) src->cache_entry.flags.alpha = 1;
95 if (mul_col != 0xffffffff) 95 if (mul_col != 0xffffffff)
96 func = evas_common_gfx_func_composite_pixel_color_span_get(src, mul_col, dst, cw, render_op); 96 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, mul_col, dst->cache_entry.flags.alpha, cw, render_op);
97 else 97 else
98 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, cw, render_op); 98 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, cw, render_op);
99 src->cache_entry.flags.alpha = pa; 99 src->cache_entry.flags.alpha = pa;
100 } 100 }
101 101
@@ -161,9 +161,9 @@ FUNC_NAME_DO(RGBA_Image *src, RGBA_Image *dst,
161 pa = src->cache_entry.flags.alpha; 161 pa = src->cache_entry.flags.alpha;
162 if (ms->havea) src->cache_entry.flags.alpha = 1; 162 if (ms->havea) src->cache_entry.flags.alpha = 1;
163 if (dc->mul.use) 163 if (dc->mul.use)
164 func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, cw, dc->render_op); 164 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dc->mul.col, dst->cache_entry.flags.alpha, cw, dc->render_op);
165 else 165 else
166 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, cw, dc->render_op); 166 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, cw, dc->render_op);
167 src->cache_entry.flags.alpha = pa; 167 src->cache_entry.flags.alpha = pa;
168 } 168 }
169 169
diff --git a/src/lib/evas/common/evas_op_add_main_.c b/src/lib/evas/common/evas_op_add_main_.c
index 1a96380af8..19bb88e8cd 100644
--- a/src/lib/evas/common/evas_op_add_main_.c
+++ b/src/lib/evas/common/evas_op_add_main_.c
@@ -5,17 +5,17 @@ static RGBA_Gfx_Pt_Func op_add_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU
5static void op_add_init(void); 5static void op_add_init(void);
6static void op_add_shutdown(void); 6static void op_add_shutdown(void);
7 7
8static RGBA_Gfx_Func op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 8static RGBA_Gfx_Func op_add_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
9static RGBA_Gfx_Func op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 9static RGBA_Gfx_Func op_add_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
10static RGBA_Gfx_Func op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_add_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_add_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_add_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
13 13
14static RGBA_Gfx_Pt_Func op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 14static RGBA_Gfx_Pt_Func op_add_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
15static RGBA_Gfx_Pt_Func op_add_color_pt_get(DATA32 col, RGBA_Image *dst); 15static RGBA_Gfx_Pt_Func op_add_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
16static RGBA_Gfx_Pt_Func op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_add_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_add_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_add_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
19 19
20static RGBA_Gfx_Compositor _composite_add = { "add", 20static RGBA_Gfx_Compositor _composite_add = { "add",
21 op_add_init, op_add_shutdown, 21 op_add_init, op_add_shutdown,
@@ -39,17 +39,17 @@ static RGBA_Gfx_Pt_Func op_add_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST]
39static void op_add_rel_init(void); 39static void op_add_rel_init(void);
40static void op_add_rel_shutdown(void); 40static void op_add_rel_shutdown(void);
41 41
42static RGBA_Gfx_Func op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 42static RGBA_Gfx_Func op_add_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
43static RGBA_Gfx_Func op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 43static RGBA_Gfx_Func op_add_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
44static RGBA_Gfx_Func op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 44static RGBA_Gfx_Func op_add_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
45static RGBA_Gfx_Func op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 45static RGBA_Gfx_Func op_add_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
46static RGBA_Gfx_Func op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 46static RGBA_Gfx_Func op_add_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
47 47
48static RGBA_Gfx_Pt_Func op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 48static RGBA_Gfx_Pt_Func op_add_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
49static RGBA_Gfx_Pt_Func op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst); 49static RGBA_Gfx_Pt_Func op_add_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
50static RGBA_Gfx_Pt_Func op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 50static RGBA_Gfx_Pt_Func op_add_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
51static RGBA_Gfx_Pt_Func op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 51static RGBA_Gfx_Pt_Func op_add_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
52static RGBA_Gfx_Pt_Func op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 52static RGBA_Gfx_Pt_Func op_add_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
53 53
54static RGBA_Gfx_Compositor _composite_add_rel = { "add_rel", 54static RGBA_Gfx_Compositor _composite_add_rel = { "add_rel",
55 op_add_rel_init, op_add_rel_shutdown, 55 op_add_rel_init, op_add_rel_shutdown,
@@ -141,19 +141,19 @@ add_gfx_span_func_cpu(int s, int m, int c, int d)
141} 141}
142 142
143static RGBA_Gfx_Func 143static RGBA_Gfx_Func
144op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 144op_add_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
145{ 145{
146 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 146 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
147 147
148 if (src && src->cache_entry.flags.alpha) 148 if (src_alpha)
149 s = SP; 149 s = SP;
150 if (dst && dst->cache_entry.flags.alpha) 150 if (dst_alpha)
151 d = DP; 151 d = DP;
152 return add_gfx_span_func_cpu(s, m, c, d); 152 return add_gfx_span_func_cpu(s, m, c, d);
153} 153}
154 154
155static RGBA_Gfx_Func 155static RGBA_Gfx_Func
156op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 156op_add_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
157{ 157{
158 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 158 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
159 159
@@ -163,17 +163,17 @@ op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
163 c = SC_AA; 163 c = SC_AA;
164 if (col == 0xffffffff) 164 if (col == 0xffffffff)
165 c = SC_N; 165 c = SC_N;
166 if (dst && dst->cache_entry.flags.alpha) 166 if (dst_alpha)
167 d = DP; 167 d = DP;
168 return add_gfx_span_func_cpu(s, m, c, d); 168 return add_gfx_span_func_cpu(s, m, c, d);
169} 169}
170 170
171static RGBA_Gfx_Func 171static RGBA_Gfx_Func
172op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 172op_add_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
173{ 173{
174 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 174 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
175 175
176 if (src && src->cache_entry.flags.alpha) 176 if (src_alpha)
177 s = SP; 177 s = SP;
178 if ((col >> 24) < 255) 178 if ((col >> 24) < 255)
179 c = SC; 179 c = SC;
@@ -181,13 +181,13 @@ op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pi
181 c = SC_AA; 181 c = SC_AA;
182 if (col == 0xffffffff) 182 if (col == 0xffffffff)
183 c = SC_N; 183 c = SC_N;
184 if (dst && dst->cache_entry.flags.alpha) 184 if (dst_alpha)
185 d = DP; 185 d = DP;
186 return add_gfx_span_func_cpu(s, m, c, d); 186 return add_gfx_span_func_cpu(s, m, c, d);
187} 187}
188 188
189static RGBA_Gfx_Func 189static RGBA_Gfx_Func
190op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 190op_add_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
191{ 191{
192 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 192 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
193 193
@@ -197,19 +197,19 @@ op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
197 c = SC_AA; 197 c = SC_AA;
198 if (col == 0xffffffff) 198 if (col == 0xffffffff)
199 c = SC_N; 199 c = SC_N;
200 if (dst && dst->cache_entry.flags.alpha) 200 if (dst_alpha)
201 d = DP; 201 d = DP;
202 return add_gfx_span_func_cpu(s, m, c, d); 202 return add_gfx_span_func_cpu(s, m, c, d);
203} 203}
204 204
205static RGBA_Gfx_Func 205static RGBA_Gfx_Func
206op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 206op_add_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
207{ 207{
208 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 208 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
209 209
210 if (src && src->cache_entry.flags.alpha) 210 if (src_alpha)
211 s = SP; 211 s = SP;
212 if (dst && dst->cache_entry.flags.alpha) 212 if (dst_alpha)
213 d = DP; 213 d = DP;
214 return add_gfx_span_func_cpu(s, m, c, d); 214 return add_gfx_span_func_cpu(s, m, c, d);
215} 215}
@@ -234,19 +234,19 @@ add_gfx_pt_func_cpu(int s, int m, int c, int d)
234} 234}
235 235
236static RGBA_Gfx_Pt_Func 236static RGBA_Gfx_Pt_Func
237op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 237op_add_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
238{ 238{
239 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 239 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
240 240
241 if (src_flags.alpha) 241 if (src_alpha)
242 s = SP; 242 s = SP;
243 if (dst && dst->cache_entry.flags.alpha) 243 if (dst_alpha)
244 d = DP; 244 d = DP;
245 return add_gfx_pt_func_cpu(s, m, c, d); 245 return add_gfx_pt_func_cpu(s, m, c, d);
246} 246}
247 247
248static RGBA_Gfx_Pt_Func 248static RGBA_Gfx_Pt_Func
249op_add_color_pt_get(DATA32 col, RGBA_Image *dst) 249op_add_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
250{ 250{
251 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 251 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
252 252
@@ -256,17 +256,17 @@ op_add_color_pt_get(DATA32 col, RGBA_Image *dst)
256 c = SC_AA; 256 c = SC_AA;
257 if (col == 0xffffffff) 257 if (col == 0xffffffff)
258 c = SC_N; 258 c = SC_N;
259 if (dst && dst->cache_entry.flags.alpha) 259 if (dst_alpha)
260 d = DP; 260 d = DP;
261 return add_gfx_pt_func_cpu(s, m, c, d); 261 return add_gfx_pt_func_cpu(s, m, c, d);
262} 262}
263 263
264static RGBA_Gfx_Pt_Func 264static RGBA_Gfx_Pt_Func
265op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 265op_add_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
266{ 266{
267 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 267 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
268 268
269 if (src_flags.alpha) 269 if (src_alpha)
270 s = SP; 270 s = SP;
271 if ((col >> 24) < 255) 271 if ((col >> 24) < 255)
272 c = SC; 272 c = SC;
@@ -274,13 +274,13 @@ op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *d
274 c = SC_AA; 274 c = SC_AA;
275 if (col == 0xffffffff) 275 if (col == 0xffffffff)
276 c = SC_N; 276 c = SC_N;
277 if (dst && dst->cache_entry.flags.alpha) 277 if (dst_alpha)
278 d = DP; 278 d = DP;
279 return add_gfx_pt_func_cpu(s, m, c, d); 279 return add_gfx_pt_func_cpu(s, m, c, d);
280} 280}
281 281
282static RGBA_Gfx_Pt_Func 282static RGBA_Gfx_Pt_Func
283op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 283op_add_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
284{ 284{
285 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 285 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
286 286
@@ -290,19 +290,19 @@ op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
290 c = SC_AA; 290 c = SC_AA;
291 if (col == 0xffffffff) 291 if (col == 0xffffffff)
292 c = SC_N; 292 c = SC_N;
293 if (dst && dst->cache_entry.flags.alpha) 293 if (dst_alpha)
294 d = DP; 294 d = DP;
295 return add_gfx_pt_func_cpu(s, m, c, d); 295 return add_gfx_pt_func_cpu(s, m, c, d);
296} 296}
297 297
298static RGBA_Gfx_Pt_Func 298static RGBA_Gfx_Pt_Func
299op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 299op_add_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
300{ 300{
301 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 301 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
302 302
303 if (src_flags.alpha) 303 if (src_alpha)
304 s = SP; 304 s = SP;
305 if (dst && dst->cache_entry.flags.alpha) 305 if (dst_alpha)
306 d = DP; 306 d = DP;
307 return add_gfx_pt_func_cpu(s, m, c, d); 307 return add_gfx_pt_func_cpu(s, m, c, d);
308} 308}
@@ -365,19 +365,19 @@ add_rel_gfx_span_func_cpu(int s, int m, int c, int d)
365} 365}
366 366
367static RGBA_Gfx_Func 367static RGBA_Gfx_Func
368op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 368op_add_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
369{ 369{
370 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 370 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
371 371
372 if (src && src->cache_entry.flags.alpha) 372 if (src_alpha)
373 s = SP; 373 s = SP;
374 if (dst && dst->cache_entry.flags.alpha) 374 if (dst_alpha)
375 d = DP; 375 d = DP;
376 return add_rel_gfx_span_func_cpu(s, m, c, d); 376 return add_rel_gfx_span_func_cpu(s, m, c, d);
377} 377}
378 378
379static RGBA_Gfx_Func 379static RGBA_Gfx_Func
380op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 380op_add_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
381{ 381{
382 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 382 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
383 383
@@ -387,17 +387,17 @@ op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
387 c = SC_AA; 387 c = SC_AA;
388 if (col == 0xffffffff) 388 if (col == 0xffffffff)
389 c = SC_N; 389 c = SC_N;
390 if (dst && dst->cache_entry.flags.alpha) 390 if (dst_alpha)
391 d = DP; 391 d = DP;
392 return add_rel_gfx_span_func_cpu(s, m, c, d); 392 return add_rel_gfx_span_func_cpu(s, m, c, d);
393} 393}
394 394
395static RGBA_Gfx_Func 395static RGBA_Gfx_Func
396op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 396op_add_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
397{ 397{
398 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 398 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
399 399
400 if (src && src->cache_entry.flags.alpha) 400 if (src_alpha)
401 s = SP; 401 s = SP;
402 if ((col >> 24) < 255) 402 if ((col >> 24) < 255)
403 c = SC; 403 c = SC;
@@ -405,13 +405,13 @@ op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, in
405 c = SC_AA; 405 c = SC_AA;
406 if (col == 0xffffffff) 406 if (col == 0xffffffff)
407 c = SC_N; 407 c = SC_N;
408 if (dst && dst->cache_entry.flags.alpha) 408 if (dst_alpha)
409 d = DP; 409 d = DP;
410 return add_rel_gfx_span_func_cpu(s, m, c, d); 410 return add_rel_gfx_span_func_cpu(s, m, c, d);
411} 411}
412 412
413static RGBA_Gfx_Func 413static RGBA_Gfx_Func
414op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 414op_add_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
415{ 415{
416 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 416 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
417 417
@@ -421,19 +421,19 @@ op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUS
421 c = SC_AA; 421 c = SC_AA;
422 if (col == 0xffffffff) 422 if (col == 0xffffffff)
423 c = SC_N; 423 c = SC_N;
424 if (dst && dst->cache_entry.flags.alpha) 424 if (dst_alpha)
425 d = DP; 425 d = DP;
426 return add_rel_gfx_span_func_cpu(s, m, c, d); 426 return add_rel_gfx_span_func_cpu(s, m, c, d);
427} 427}
428 428
429static RGBA_Gfx_Func 429static RGBA_Gfx_Func
430op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 430op_add_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
431{ 431{
432 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 432 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
433 433
434 if (src && src->cache_entry.flags.alpha) 434 if (src_alpha)
435 s = SP; 435 s = SP;
436 if (dst && dst->cache_entry.flags.alpha) 436 if (dst_alpha)
437 d = DP; 437 d = DP;
438 return add_rel_gfx_span_func_cpu(s, m, c, d); 438 return add_rel_gfx_span_func_cpu(s, m, c, d);
439} 439}
@@ -458,19 +458,19 @@ add_rel_gfx_pt_func_cpu(int s, int m, int c, int d)
458} 458}
459 459
460static RGBA_Gfx_Pt_Func 460static RGBA_Gfx_Pt_Func
461op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 461op_add_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
462{ 462{
463 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 463 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
464 464
465 if (src_flags.alpha) 465 if (src_alpha)
466 s = SP; 466 s = SP;
467 if (dst && dst->cache_entry.flags.alpha) 467 if (dst_alpha)
468 d = DP; 468 d = DP;
469 return add_rel_gfx_pt_func_cpu(s, m, c, d); 469 return add_rel_gfx_pt_func_cpu(s, m, c, d);
470} 470}
471 471
472static RGBA_Gfx_Pt_Func 472static RGBA_Gfx_Pt_Func
473op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst) 473op_add_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
474{ 474{
475 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 475 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
476 476
@@ -480,17 +480,17 @@ op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst)
480 c = SC_AA; 480 c = SC_AA;
481 if (col == 0xffffffff) 481 if (col == 0xffffffff)
482 c = SC_N; 482 c = SC_N;
483 if (dst && dst->cache_entry.flags.alpha) 483 if (dst_alpha)
484 d = DP; 484 d = DP;
485 return add_rel_gfx_pt_func_cpu(s, m, c, d); 485 return add_rel_gfx_pt_func_cpu(s, m, c, d);
486} 486}
487 487
488static RGBA_Gfx_Pt_Func 488static RGBA_Gfx_Pt_Func
489op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 489op_add_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
490{ 490{
491 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 491 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
492 492
493 if (src_flags.alpha) 493 if (src_alpha)
494 s = SP; 494 s = SP;
495 if ((col >> 24) < 255) 495 if ((col >> 24) < 255)
496 c = SC; 496 c = SC;
@@ -498,13 +498,13 @@ op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Imag
498 c = SC_AA; 498 c = SC_AA;
499 if (col == 0xffffffff) 499 if (col == 0xffffffff)
500 c = SC_N; 500 c = SC_N;
501 if (dst && dst->cache_entry.flags.alpha) 501 if (dst_alpha)
502 d = DP; 502 d = DP;
503 return add_rel_gfx_pt_func_cpu(s, m, c, d); 503 return add_rel_gfx_pt_func_cpu(s, m, c, d);
504} 504}
505 505
506static RGBA_Gfx_Pt_Func 506static RGBA_Gfx_Pt_Func
507op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 507op_add_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
508{ 508{
509 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 509 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
510 510
@@ -514,19 +514,19 @@ op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
514 c = SC_AA; 514 c = SC_AA;
515 if (col == 0xffffffff) 515 if (col == 0xffffffff)
516 c = SC_N; 516 c = SC_N;
517 if (dst && dst->cache_entry.flags.alpha) 517 if (dst_alpha)
518 d = DP; 518 d = DP;
519 return add_rel_gfx_pt_func_cpu(s, m, c, d); 519 return add_rel_gfx_pt_func_cpu(s, m, c, d);
520} 520}
521 521
522static RGBA_Gfx_Pt_Func 522static RGBA_Gfx_Pt_Func
523op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 523op_add_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
524{ 524{
525 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 525 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
526 526
527 if (src_flags.alpha) 527 if (src_alpha)
528 s = SP; 528 s = SP;
529 if (dst && dst->cache_entry.flags.alpha) 529 if (dst_alpha)
530 d = DP; 530 d = DP;
531 return add_rel_gfx_pt_func_cpu(s, m, c, d); 531 return add_rel_gfx_pt_func_cpu(s, m, c, d);
532} 532}
diff --git a/src/lib/evas/common/evas_op_blend_main_.c b/src/lib/evas/common/evas_op_blend_main_.c
index 5c85673463..aff6cdb8b7 100644
--- a/src/lib/evas/common/evas_op_blend_main_.c
+++ b/src/lib/evas/common/evas_op_blend_main_.c
@@ -6,17 +6,17 @@ RGBA_Gfx_Pt_Func op_blend_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST
6static void op_blend_init(void); 6static void op_blend_init(void);
7static void op_blend_shutdown(void); 7static void op_blend_shutdown(void);
8 8
9static RGBA_Gfx_Func op_blend_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 9static RGBA_Gfx_Func op_blend_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels);
10static RGBA_Gfx_Func op_blend_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_blend_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_blend_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_blend_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_blend_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_blend_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
13static RGBA_Gfx_Func op_blend_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 13static RGBA_Gfx_Func op_blend_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels);
14 14
15static RGBA_Gfx_Pt_Func op_blend_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 15static RGBA_Gfx_Pt_Func op_blend_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
16static RGBA_Gfx_Pt_Func op_blend_color_pt_get(DATA32 col, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_blend_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_blend_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_blend_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_blend_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_blend_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
19static RGBA_Gfx_Pt_Func op_blend_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 19static RGBA_Gfx_Pt_Func op_blend_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
20 20
21static RGBA_Gfx_Compositor _composite_blend = { "blend", 21static RGBA_Gfx_Compositor _composite_blend = { "blend",
22 op_blend_init, op_blend_shutdown, 22 op_blend_init, op_blend_shutdown,
@@ -41,17 +41,17 @@ RGBA_Gfx_Pt_Func op_blend_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_
41static void op_blend_rel_init(void); 41static void op_blend_rel_init(void);
42static void op_blend_rel_shutdown(void); 42static void op_blend_rel_shutdown(void);
43 43
44static RGBA_Gfx_Func op_blend_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 44static RGBA_Gfx_Func op_blend_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
45static RGBA_Gfx_Func op_blend_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 45static RGBA_Gfx_Func op_blend_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
46static RGBA_Gfx_Func op_blend_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 46static RGBA_Gfx_Func op_blend_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
47static RGBA_Gfx_Func op_blend_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 47static RGBA_Gfx_Func op_blend_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
48static RGBA_Gfx_Func op_blend_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 48static RGBA_Gfx_Func op_blend_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
49 49
50static RGBA_Gfx_Pt_Func op_blend_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 50static RGBA_Gfx_Pt_Func op_blend_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
51static RGBA_Gfx_Pt_Func op_blend_rel_color_pt_get(DATA32 col, RGBA_Image *dst); 51static RGBA_Gfx_Pt_Func op_blend_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
52static RGBA_Gfx_Pt_Func op_blend_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 52static RGBA_Gfx_Pt_Func op_blend_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
53static RGBA_Gfx_Pt_Func op_blend_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 53static RGBA_Gfx_Pt_Func op_blend_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
54static RGBA_Gfx_Pt_Func op_blend_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 54static RGBA_Gfx_Pt_Func op_blend_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
55 55
56static RGBA_Gfx_Compositor _composite_blend_rel = { "blend_rel", 56static RGBA_Gfx_Compositor _composite_blend_rel = { "blend_rel",
57 op_blend_rel_init, op_blend_rel_shutdown, 57 op_blend_rel_init, op_blend_rel_shutdown,
@@ -190,23 +190,23 @@ blend_gfx_span_func_cpu(int s, int m, int c, int d)
190} 190}
191 191
192static RGBA_Gfx_Func 192static RGBA_Gfx_Func
193op_blend_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 193op_blend_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
194{ 194{
195 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 195 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
196 196
197 if (src && src->cache_entry.flags.alpha) 197 if (src_alpha)
198 { 198 {
199 s = SP; 199 s = SP;
200 if (src->cache_entry.flags.alpha_sparse) 200 if (src_sparse_alpha)
201 s = SP_AS; 201 s = SP_AS;
202 } 202 }
203 if (dst && dst->cache_entry.flags.alpha) 203 if (dst_alpha)
204 d = DP; 204 d = DP;
205 return blend_gfx_span_func_cpu(s, m, c, d); 205 return blend_gfx_span_func_cpu(s, m, c, d);
206} 206}
207 207
208static RGBA_Gfx_Func 208static RGBA_Gfx_Func
209op_blend_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 209op_blend_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
210{ 210{
211 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 211 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
212 212
@@ -216,20 +216,20 @@ op_blend_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
216 c = SC_AA; 216 c = SC_AA;
217 if (col == 0xffffffff) 217 if (col == 0xffffffff)
218 c = SC_N; 218 c = SC_N;
219 if (dst && dst->cache_entry.flags.alpha) 219 if (dst_alpha)
220 d = DP; 220 d = DP;
221 return blend_gfx_span_func_cpu(s, m, c, d); 221 return blend_gfx_span_func_cpu(s, m, c, d);
222} 222}
223 223
224static RGBA_Gfx_Func 224static RGBA_Gfx_Func
225op_blend_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 225op_blend_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
226{ 226{
227 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 227 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
228 228
229 if (src && src->cache_entry.flags.alpha) 229 if (src_alpha)
230 { 230 {
231 s = SP; 231 s = SP;
232 if (src->cache_entry.flags.alpha_sparse) 232 if (src_sparse_alpha)
233 s = SP_AS; 233 s = SP_AS;
234 } 234 }
235 if ((col >> 24) < 255) 235 if ((col >> 24) < 255)
@@ -238,13 +238,13 @@ op_blend_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int
238 c = SC_AA; 238 c = SC_AA;
239 if (col == 0xffffffff) 239 if (col == 0xffffffff)
240 c = SC_N; 240 c = SC_N;
241 if (dst && dst->cache_entry.flags.alpha) 241 if (dst_alpha)
242 d = DP; 242 d = DP;
243 return blend_gfx_span_func_cpu(s, m, c, d); 243 return blend_gfx_span_func_cpu(s, m, c, d);
244} 244}
245 245
246static RGBA_Gfx_Func 246static RGBA_Gfx_Func
247op_blend_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 247op_blend_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
248{ 248{
249 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 249 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
250 250
@@ -254,23 +254,23 @@ op_blend_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED
254 c = SC_AA; 254 c = SC_AA;
255 if (col == 0xffffffff) 255 if (col == 0xffffffff)
256 c = SC_N; 256 c = SC_N;
257 if (dst && dst->cache_entry.flags.alpha) 257 if (dst_alpha)
258 d = DP; 258 d = DP;
259 return blend_gfx_span_func_cpu(s, m, c, d); 259 return blend_gfx_span_func_cpu(s, m, c, d);
260} 260}
261 261
262static RGBA_Gfx_Func 262static RGBA_Gfx_Func
263op_blend_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 263op_blend_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
264{ 264{
265 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 265 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
266 266
267 if (src && src->cache_entry.flags.alpha) 267 if (src_alpha)
268 { 268 {
269 s = SP; 269 s = SP;
270 if (src->cache_entry.flags.alpha_sparse) 270 if (src_sparse_alpha)
271 s = SP_AS; 271 s = SP_AS;
272 } 272 }
273 if (dst && dst->cache_entry.flags.alpha) 273 if (dst_alpha)
274 d = DP; 274 d = DP;
275 return blend_gfx_span_func_cpu(s, m, c, d); 275 return blend_gfx_span_func_cpu(s, m, c, d);
276} 276}
@@ -312,19 +312,19 @@ blend_gfx_pt_func_cpu(int s, int m, int c, int d)
312} 312}
313 313
314static RGBA_Gfx_Pt_Func 314static RGBA_Gfx_Pt_Func
315op_blend_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 315op_blend_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
316{ 316{
317 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 317 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
318 318
319 if (src_flags.alpha) 319 if (src_alpha)
320 s = SP; 320 s = SP;
321 if (dst && dst->cache_entry.flags.alpha) 321 if (dst_alpha)
322 d = DP; 322 d = DP;
323 return blend_gfx_pt_func_cpu(s, m, c, d); 323 return blend_gfx_pt_func_cpu(s, m, c, d);
324} 324}
325 325
326static RGBA_Gfx_Pt_Func 326static RGBA_Gfx_Pt_Func
327op_blend_color_pt_get(DATA32 col, RGBA_Image *dst) 327op_blend_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
328{ 328{
329 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 329 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
330 330
@@ -334,17 +334,17 @@ op_blend_color_pt_get(DATA32 col, RGBA_Image *dst)
334 c = SC_AA; 334 c = SC_AA;
335 if (col == 0xffffffff) 335 if (col == 0xffffffff)
336 c = SC_N; 336 c = SC_N;
337 if (dst && dst->cache_entry.flags.alpha) 337 if (dst_alpha)
338 d = DP; 338 d = DP;
339 return blend_gfx_pt_func_cpu(s, m, c, d); 339 return blend_gfx_pt_func_cpu(s, m, c, d);
340} 340}
341 341
342static RGBA_Gfx_Pt_Func 342static RGBA_Gfx_Pt_Func
343op_blend_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 343op_blend_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
344{ 344{
345 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 345 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
346 346
347 if (src_flags.alpha) 347 if (src_alpha)
348 s = SP; 348 s = SP;
349 if ((col >> 24) < 255) 349 if ((col >> 24) < 255)
350 c = SC; 350 c = SC;
@@ -352,13 +352,13 @@ op_blend_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image
352 c = SC_AA; 352 c = SC_AA;
353 if (col == 0xffffffff) 353 if (col == 0xffffffff)
354 c = SC_N; 354 c = SC_N;
355 if (dst && dst->cache_entry.flags.alpha) 355 if (dst_alpha)
356 d = DP; 356 d = DP;
357 return blend_gfx_pt_func_cpu(s, m, c, d); 357 return blend_gfx_pt_func_cpu(s, m, c, d);
358} 358}
359 359
360static RGBA_Gfx_Pt_Func 360static RGBA_Gfx_Pt_Func
361op_blend_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 361op_blend_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
362{ 362{
363 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 363 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
364 364
@@ -368,19 +368,19 @@ op_blend_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
368 c = SC_AA; 368 c = SC_AA;
369 if (col == 0xffffffff) 369 if (col == 0xffffffff)
370 c = SC_N; 370 c = SC_N;
371 if (dst && dst->cache_entry.flags.alpha) 371 if (dst_alpha)
372 d = DP; 372 d = DP;
373 return blend_gfx_pt_func_cpu(s, m, c, d); 373 return blend_gfx_pt_func_cpu(s, m, c, d);
374} 374}
375 375
376static RGBA_Gfx_Pt_Func 376static RGBA_Gfx_Pt_Func
377op_blend_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 377op_blend_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
378{ 378{
379 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 379 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
380 380
381 if (src_flags.alpha) 381 if (src_alpha)
382 s = SP; 382 s = SP;
383 if (dst && dst->cache_entry.flags.alpha) 383 if (dst_alpha)
384 d = DP; 384 d = DP;
385 return blend_gfx_pt_func_cpu(s, m, c, d); 385 return blend_gfx_pt_func_cpu(s, m, c, d);
386} 386}
@@ -475,23 +475,23 @@ blend_rel_gfx_span_func_cpu(int s, int m, int c, int d)
475} 475}
476 476
477static RGBA_Gfx_Func 477static RGBA_Gfx_Func
478op_blend_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 478op_blend_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
479{ 479{
480 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 480 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
481 481
482 if (src && src->cache_entry.flags.alpha) 482 if (src_alpha)
483 { 483 {
484 s = SP; 484 s = SP;
485 if (src->cache_entry.flags.alpha_sparse) 485 if (src_sparse_alpha)
486 s = SP_AS; 486 s = SP_AS;
487 } 487 }
488 if (dst && dst->cache_entry.flags.alpha) 488 if (dst_alpha)
489 d = DP; 489 d = DP;
490 return blend_rel_gfx_span_func_cpu(s, m, c, d); 490 return blend_rel_gfx_span_func_cpu(s, m, c, d);
491} 491}
492 492
493static RGBA_Gfx_Func 493static RGBA_Gfx_Func
494op_blend_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 494op_blend_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
495{ 495{
496 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 496 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
497 497
@@ -501,17 +501,17 @@ op_blend_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
501 c = SC_AA; 501 c = SC_AA;
502 if (col == 0xffffffff) 502 if (col == 0xffffffff)
503 c = SC_N; 503 c = SC_N;
504 if (dst && dst->cache_entry.flags.alpha) 504 if (dst_alpha)
505 d = DP; 505 d = DP;
506 return blend_rel_gfx_span_func_cpu(s, m, c, d); 506 return blend_rel_gfx_span_func_cpu(s, m, c, d);
507} 507}
508 508
509static RGBA_Gfx_Func 509static RGBA_Gfx_Func
510op_blend_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 510op_blend_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
511{ 511{
512 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 512 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
513 513
514 if (src && src->cache_entry.flags.alpha) 514 if (src_alpha)
515 s = SP; 515 s = SP;
516 if ((col >> 24) < 255) 516 if ((col >> 24) < 255)
517 c = SC; 517 c = SC;
@@ -519,13 +519,13 @@ op_blend_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst,
519 c = SC_AA; 519 c = SC_AA;
520 if (col == 0xffffffff) 520 if (col == 0xffffffff)
521 c = SC_N; 521 c = SC_N;
522 if (dst && dst->cache_entry.flags.alpha) 522 if (dst_alpha)
523 d = DP; 523 d = DP;
524 return blend_rel_gfx_span_func_cpu(s, m, c, d); 524 return blend_rel_gfx_span_func_cpu(s, m, c, d);
525} 525}
526 526
527static RGBA_Gfx_Func 527static RGBA_Gfx_Func
528op_blend_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 528op_blend_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
529{ 529{
530 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 530 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
531 531
@@ -535,23 +535,23 @@ op_blend_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UN
535 c = SC_AA; 535 c = SC_AA;
536 if (col == 0xffffffff) 536 if (col == 0xffffffff)
537 c = SC_N; 537 c = SC_N;
538 if (dst && dst->cache_entry.flags.alpha) 538 if (dst_alpha)
539 d = DP; 539 d = DP;
540 return blend_rel_gfx_span_func_cpu(s, m, c, d); 540 return blend_rel_gfx_span_func_cpu(s, m, c, d);
541} 541}
542 542
543static RGBA_Gfx_Func 543static RGBA_Gfx_Func
544op_blend_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 544op_blend_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
545{ 545{
546 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 546 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
547 547
548 if (src && src->cache_entry.flags.alpha) 548 if (src_alpha)
549 { 549 {
550 s = SP; 550 s = SP;
551 if (src->cache_entry.flags.alpha_sparse) 551 if (src_sparse_alpha)
552 s = SP_AS; 552 s = SP_AS;
553 } 553 }
554 if (dst && dst->cache_entry.flags.alpha) 554 if (dst_alpha)
555 d = DP; 555 d = DP;
556 return blend_rel_gfx_span_func_cpu(s, m, c, d); 556 return blend_rel_gfx_span_func_cpu(s, m, c, d);
557} 557}
@@ -592,19 +592,19 @@ blend_rel_gfx_pt_func_cpu(int s, int m, int c, int d)
592} 592}
593 593
594static RGBA_Gfx_Pt_Func 594static RGBA_Gfx_Pt_Func
595op_blend_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 595op_blend_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
596{ 596{
597 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 597 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
598 598
599 if (src_flags.alpha) 599 if (src_alpha)
600 s = SP; 600 s = SP;
601 if (dst && dst->cache_entry.flags.alpha) 601 if (dst_alpha)
602 d = DP; 602 d = DP;
603 return blend_rel_gfx_pt_func_cpu(s, m, c, d); 603 return blend_rel_gfx_pt_func_cpu(s, m, c, d);
604} 604}
605 605
606static RGBA_Gfx_Pt_Func 606static RGBA_Gfx_Pt_Func
607op_blend_rel_color_pt_get(DATA32 col, RGBA_Image *dst) 607op_blend_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
608{ 608{
609 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 609 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
610 610
@@ -614,17 +614,17 @@ op_blend_rel_color_pt_get(DATA32 col, RGBA_Image *dst)
614 c = SC_AA; 614 c = SC_AA;
615 if (col == 0xffffffff) 615 if (col == 0xffffffff)
616 c = SC_N; 616 c = SC_N;
617 if (dst && dst->cache_entry.flags.alpha) 617 if (dst_alpha)
618 d = DP; 618 d = DP;
619 return blend_rel_gfx_pt_func_cpu(s, m, c, d); 619 return blend_rel_gfx_pt_func_cpu(s, m, c, d);
620} 620}
621 621
622static RGBA_Gfx_Pt_Func 622static RGBA_Gfx_Pt_Func
623op_blend_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 623op_blend_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
624{ 624{
625 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 625 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
626 626
627 if (src_flags.alpha) 627 if (src_alpha)
628 s = SP; 628 s = SP;
629 if ((col >> 24) < 255) 629 if ((col >> 24) < 255)
630 c = SC; 630 c = SC;
@@ -632,13 +632,13 @@ op_blend_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Im
632 c = SC_AA; 632 c = SC_AA;
633 if (col == 0xffffffff) 633 if (col == 0xffffffff)
634 c = SC_N; 634 c = SC_N;
635 if (dst && dst->cache_entry.flags.alpha) 635 if (dst_alpha)
636 d = DP; 636 d = DP;
637 return blend_rel_gfx_pt_func_cpu(s, m, c, d); 637 return blend_rel_gfx_pt_func_cpu(s, m, c, d);
638} 638}
639 639
640static RGBA_Gfx_Pt_Func 640static RGBA_Gfx_Pt_Func
641op_blend_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 641op_blend_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
642{ 642{
643 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 643 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
644 644
@@ -648,19 +648,19 @@ op_blend_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
648 c = SC_AA; 648 c = SC_AA;
649 if (col == 0xffffffff) 649 if (col == 0xffffffff)
650 c = SC_N; 650 c = SC_N;
651 if (dst && dst->cache_entry.flags.alpha) 651 if (dst_alpha)
652 d = DP; 652 d = DP;
653 return blend_rel_gfx_pt_func_cpu(s, m, c, d); 653 return blend_rel_gfx_pt_func_cpu(s, m, c, d);
654} 654}
655 655
656static RGBA_Gfx_Pt_Func 656static RGBA_Gfx_Pt_Func
657op_blend_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 657op_blend_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
658{ 658{
659 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 659 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
660 660
661 if (src_flags.alpha) 661 if (src_alpha)
662 s = SP; 662 s = SP;
663 if (dst && dst->cache_entry.flags.alpha) 663 if (dst_alpha)
664 d = DP; 664 d = DP;
665 return blend_rel_gfx_pt_func_cpu(s, m, c, d); 665 return blend_rel_gfx_pt_func_cpu(s, m, c, d);
666} 666}
diff --git a/src/lib/evas/common/evas_op_copy_main_.c b/src/lib/evas/common/evas_op_copy_main_.c
index 9c48559e7c..16fc3f11b5 100644
--- a/src/lib/evas/common/evas_op_copy_main_.c
+++ b/src/lib/evas/common/evas_op_copy_main_.c
@@ -7,17 +7,17 @@ static RGBA_Gfx_Pt_Func op_copy_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CP
7static void op_copy_init(void); 7static void op_copy_init(void);
8static void op_copy_shutdown(void); 8static void op_copy_shutdown(void);
9 9
10static RGBA_Gfx_Func op_copy_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_copy_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_copy_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_copy_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_copy_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_copy_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
13static RGBA_Gfx_Func op_copy_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 13static RGBA_Gfx_Func op_copy_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
14static RGBA_Gfx_Func op_copy_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 14static RGBA_Gfx_Func op_copy_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
15 15
16static RGBA_Gfx_Pt_Func op_copy_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_copy_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_copy_color_pt_get(DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_copy_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_copy_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_copy_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
19static RGBA_Gfx_Pt_Func op_copy_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 19static RGBA_Gfx_Pt_Func op_copy_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
20static RGBA_Gfx_Pt_Func op_copy_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 20static RGBA_Gfx_Pt_Func op_copy_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
21 21
22static RGBA_Gfx_Compositor _composite_copy = { "copy", 22static RGBA_Gfx_Compositor _composite_copy = { "copy",
23 op_copy_init, op_copy_shutdown, 23 op_copy_init, op_copy_shutdown,
@@ -42,19 +42,19 @@ static RGBA_Gfx_Pt_Func op_copy_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST
42static void op_copy_rel_init(void); 42static void op_copy_rel_init(void);
43static void op_copy_rel_shutdown(void); 43static void op_copy_rel_shutdown(void);
44 44
45static RGBA_Gfx_Func op_copy_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 45static RGBA_Gfx_Func op_copy_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels);
46static RGBA_Gfx_Func op_copy_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 46static RGBA_Gfx_Func op_copy_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
47static RGBA_Gfx_Func op_copy_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 47static RGBA_Gfx_Func op_copy_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
48static RGBA_Gfx_Func op_copy_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 48static RGBA_Gfx_Func op_copy_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
49static RGBA_Gfx_Func op_copy_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 49static RGBA_Gfx_Func op_copy_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels);
50 50
51static RGBA_Gfx_Pt_Func op_copy_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 51static RGBA_Gfx_Pt_Func op_copy_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
52/* XXX: doesn't exist 52/* XXX: doesn't exist
53static RGBA_Gfx_Pt_Func op_copy_rel_color_pt_get(DATA32 col, RGBA_Image *dst); 53static RGBA_Gfx_Pt_Func op_copy_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
54 */ 54 */
55static RGBA_Gfx_Pt_Func op_copy_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 55static RGBA_Gfx_Pt_Func op_copy_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
56static RGBA_Gfx_Pt_Func op_copy_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 56static RGBA_Gfx_Pt_Func op_copy_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
57static RGBA_Gfx_Pt_Func op_copy_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 57static RGBA_Gfx_Pt_Func op_copy_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
58 58
59static RGBA_Gfx_Compositor _composite_copy_rel = { "copy_rel", 59static RGBA_Gfx_Compositor _composite_copy_rel = { "copy_rel",
60 op_copy_rel_init, op_copy_rel_shutdown, 60 op_copy_rel_init, op_copy_rel_shutdown,
@@ -178,73 +178,64 @@ copy_gfx_span_func_cpu(int s, int m, int c, int d)
178} 178}
179 179
180static RGBA_Gfx_Func 180static RGBA_Gfx_Func
181op_copy_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 181op_copy_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
182{ 182{
183 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 183 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
184 184
185 if (src && src->cache_entry.flags.alpha) 185 if (src_alpha)
186 { 186 {
187 dst->cache_entry.flags.alpha = 1;
188 s = SP; 187 s = SP;
189 } 188 }
190 if (dst && dst->cache_entry.flags.alpha) 189 if (dst_alpha)
191 d = DP; 190 d = DP;
192 return copy_gfx_span_func_cpu(s, m, c, d); 191 return copy_gfx_span_func_cpu(s, m, c, d);
193} 192}
194 193
195static RGBA_Gfx_Func 194static RGBA_Gfx_Func
196op_copy_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 195op_copy_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
197{ 196{
198 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 197 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
199 198
200 if ((col >> 24) < 255) 199 if ((col >> 24) < 255)
201 { 200 {
202 if (dst)
203 dst->cache_entry.flags.alpha = 1;
204 c = SC; 201 c = SC;
205 } 202 }
206 if (col == ((col >> 24) * 0x01010101)) 203 if (col == ((col >> 24) * 0x01010101))
207 c = SC_AA; 204 c = SC_AA;
208 if (col == 0xffffffff) 205 if (col == 0xffffffff)
209 c = SC_N; 206 c = SC_N;
210 if (dst && dst->cache_entry.flags.alpha) 207 if (dst_alpha)
211 d = DP; 208 d = DP;
212 return copy_gfx_span_func_cpu(s, m, c, d); 209 return copy_gfx_span_func_cpu(s, m, c, d);
213} 210}
214 211
215static RGBA_Gfx_Func 212static RGBA_Gfx_Func
216op_copy_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 213op_copy_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
217{ 214{
218 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 215 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
219 216
220 if (src && src->cache_entry.flags.alpha) 217 if (src_alpha)
221 { 218 {
222 if (dst)
223 dst->cache_entry.flags.alpha = 1;
224 s = SP; 219 s = SP;
225 } 220 }
226 if ((col >> 24) < 255) 221 if ((col >> 24) < 255)
227 { 222 {
228 if (dst)
229 dst->cache_entry.flags.alpha = 1;
230 c = SC; 223 c = SC;
231 } 224 }
232 if (col == ((col >> 24) * 0x01010101)) 225 if (col == ((col >> 24) * 0x01010101))
233 c = SC_AA; 226 c = SC_AA;
234 if (col == 0xffffffff) 227 if (col == 0xffffffff)
235 c = SC_N; 228 c = SC_N;
236 if (dst && dst->cache_entry.flags.alpha) 229 if (dst_alpha)
237 d = DP; 230 d = DP;
238 return copy_gfx_span_func_cpu(s, m, c, d); 231 return copy_gfx_span_func_cpu(s, m, c, d);
239} 232}
240 233
241static RGBA_Gfx_Func 234static RGBA_Gfx_Func
242op_copy_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 235op_copy_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
243{ 236{
244 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 237 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
245 238
246 if (dst)
247 dst->cache_entry.flags.alpha = 1;
248 if ((col >> 24) < 255) 239 if ((col >> 24) < 255)
249 c = SC; 240 c = SC;
250 if (col == ((col >> 24) * 0x01010101)) 241 if (col == ((col >> 24) * 0x01010101))
@@ -255,13 +246,11 @@ op_copy_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
255} 246}
256 247
257static RGBA_Gfx_Func 248static RGBA_Gfx_Func
258op_copy_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 249op_copy_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
259{ 250{
260 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 251 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
261 252
262 if (dst) 253 if (src_alpha)
263 dst->cache_entry.flags.alpha = 1;
264 if (src && src->cache_entry.flags.alpha)
265 s = SP; 254 s = SP;
266 return copy_gfx_span_func_cpu(s, m, c, d); 255 return copy_gfx_span_func_cpu(s, m, c, d);
267} 256}
@@ -294,73 +283,64 @@ copy_gfx_pt_func_cpu(int s, int m, int c, int d)
294} 283}
295 284
296static RGBA_Gfx_Pt_Func 285static RGBA_Gfx_Pt_Func
297op_copy_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 286op_copy_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
298{ 287{
299 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 288 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
300 289
301 if (src_flags.alpha) 290 if (src_alpha)
302 { 291 {
303 dst->cache_entry.flags.alpha = 1;
304 s = SP; 292 s = SP;
305 } 293 }
306 if (dst && dst->cache_entry.flags.alpha) 294 if (dst_alpha)
307 d = DP; 295 d = DP;
308 return copy_gfx_pt_func_cpu(s, m, c, d); 296 return copy_gfx_pt_func_cpu(s, m, c, d);
309} 297}
310 298
311static RGBA_Gfx_Pt_Func 299static RGBA_Gfx_Pt_Func
312op_copy_color_pt_get(DATA32 col, RGBA_Image *dst) 300op_copy_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
313{ 301{
314 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 302 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
315 303
316 if ((col >> 24) < 255) 304 if ((col >> 24) < 255)
317 { 305 {
318 if (dst)
319 dst->cache_entry.flags.alpha = 1;
320 c = SC; 306 c = SC;
321 } 307 }
322 if (col == ((col >> 24) * 0x01010101)) 308 if (col == ((col >> 24) * 0x01010101))
323 c = SC_AA; 309 c = SC_AA;
324 if (col == 0xffffffff) 310 if (col == 0xffffffff)
325 c = SC_N; 311 c = SC_N;
326 if (dst && dst->cache_entry.flags.alpha) 312 if (dst_alpha)
327 d = DP; 313 d = DP;
328 return copy_gfx_pt_func_cpu(s, m, c, d); 314 return copy_gfx_pt_func_cpu(s, m, c, d);
329} 315}
330 316
331static RGBA_Gfx_Pt_Func 317static RGBA_Gfx_Pt_Func
332op_copy_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 318op_copy_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
333{ 319{
334 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 320 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
335 321
336 if (src_flags.alpha) 322 if (src_alpha)
337 { 323 {
338 if (dst)
339 dst->cache_entry.flags.alpha = 1;
340 s = SP; 324 s = SP;
341 } 325 }
342 if ((col >> 24) < 255) 326 if ((col >> 24) < 255)
343 { 327 {
344 if (dst)
345 dst->cache_entry.flags.alpha = 1;
346 c = SC; 328 c = SC;
347 } 329 }
348 if (col == ((col >> 24) * 0x01010101)) 330 if (col == ((col >> 24) * 0x01010101))
349 c = SC_AA; 331 c = SC_AA;
350 if (col == 0xffffffff) 332 if (col == 0xffffffff)
351 c = SC_N; 333 c = SC_N;
352 if (dst && dst->cache_entry.flags.alpha) 334 if (dst_alpha)
353 d = DP; 335 d = DP;
354 return copy_gfx_pt_func_cpu(s, m, c, d); 336 return copy_gfx_pt_func_cpu(s, m, c, d);
355} 337}
356 338
357static RGBA_Gfx_Pt_Func 339static RGBA_Gfx_Pt_Func
358op_copy_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 340op_copy_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED)
359{ 341{
360 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 342 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
361 343
362 if (dst)
363 dst->cache_entry.flags.alpha = 1;
364 if ((col >> 24) < 255) 344 if ((col >> 24) < 255)
365 c = SC; 345 c = SC;
366 if (col == ((col >> 24) * 0x01010101)) 346 if (col == ((col >> 24) * 0x01010101))
@@ -371,13 +351,11 @@ op_copy_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
371} 351}
372 352
373static RGBA_Gfx_Pt_Func 353static RGBA_Gfx_Pt_Func
374op_copy_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 354op_copy_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha EINA_UNUSED)
375{ 355{
376 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 356 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
377 357
378 if (dst) 358 if (src_alpha)
379 dst->cache_entry.flags.alpha = 1;
380 if (src_flags.alpha)
381 s = SP; 359 s = SP;
382 return copy_gfx_pt_func_cpu(s, m, c, d); 360 return copy_gfx_pt_func_cpu(s, m, c, d);
383} 361}
@@ -460,74 +438,64 @@ copy_rel_gfx_span_func_cpu(int s, int m, int c, int d)
460} 438}
461 439
462static RGBA_Gfx_Func 440static RGBA_Gfx_Func
463op_copy_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 441op_copy_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
464{ 442{
465 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 443 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
466 444
467 if (src && src->cache_entry.flags.alpha) 445 if (src_alpha)
468 { 446 {
469 if (dst)
470 dst->cache_entry.flags.alpha = 1;
471 s = SP; 447 s = SP;
472 } 448 }
473 if (dst && dst->cache_entry.flags.alpha) 449 if (dst_alpha)
474 d = DP; 450 d = DP;
475 return copy_rel_gfx_span_func_cpu(s, m, c, d); 451 return copy_rel_gfx_span_func_cpu(s, m, c, d);
476} 452}
477 453
478static RGBA_Gfx_Func 454static RGBA_Gfx_Func
479op_copy_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 455op_copy_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
480{ 456{
481 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 457 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
482 458
483 if ((col >> 24) < 255) 459 if ((col >> 24) < 255)
484 { 460 {
485 if (dst)
486 dst->cache_entry.flags.alpha = 1;
487 c = SC; 461 c = SC;
488 } 462 }
489 if (col == ((col >> 24) * 0x01010101)) 463 if (col == ((col >> 24) * 0x01010101))
490 c = SC_AA; 464 c = SC_AA;
491 if (col == 0xffffffff) 465 if (col == 0xffffffff)
492 c = SC_N; 466 c = SC_N;
493 if (dst && dst->cache_entry.flags.alpha) 467 if (dst_alpha)
494 d = DP; 468 d = DP;
495 return copy_rel_gfx_span_func_cpu(s, m, c, d); 469 return copy_rel_gfx_span_func_cpu(s, m, c, d);
496} 470}
497 471
498static RGBA_Gfx_Func 472static RGBA_Gfx_Func
499op_copy_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 473op_copy_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
500{ 474{
501 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 475 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
502 476
503 if (src && src->cache_entry.flags.alpha) 477 if (src_alpha)
504 { 478 {
505 if (dst)
506 dst->cache_entry.flags.alpha = 1;
507 s = SP; 479 s = SP;
508 } 480 }
509 if ((col >> 24) < 255) 481 if ((col >> 24) < 255)
510 { 482 {
511 if (dst)
512 dst->cache_entry.flags.alpha = 1;
513 c = SC; 483 c = SC;
514 } 484 }
515 if (col == ((col >> 24) * 0x01010101)) 485 if (col == ((col >> 24) * 0x01010101))
516 c = SC_AA; 486 c = SC_AA;
517 if (col == 0xffffffff) 487 if (col == 0xffffffff)
518 c = SC_N; 488 c = SC_N;
519 if (dst && dst->cache_entry.flags.alpha) 489 if (dst_alpha)
520 d = DP; 490 d = DP;
521 return copy_rel_gfx_span_func_cpu(s, m, c, d); 491 return copy_rel_gfx_span_func_cpu(s, m, c, d);
522} 492}
523 493
524static RGBA_Gfx_Func 494static RGBA_Gfx_Func
525op_copy_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 495op_copy_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
526{ 496{
527 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 497 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
528 498
529 if (dst)
530 dst->cache_entry.flags.alpha = 1;
531 if ((col >> 24) < 255) 499 if ((col >> 24) < 255)
532 c = SC; 500 c = SC;
533 if (col == ((col >> 24) * 0x01010101)) 501 if (col == ((col >> 24) * 0x01010101))
@@ -538,13 +506,11 @@ op_copy_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNU
538} 506}
539 507
540static RGBA_Gfx_Func 508static RGBA_Gfx_Func
541op_copy_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 509op_copy_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
542{ 510{
543 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 511 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
544 512
545 if (dst) 513 if (src_alpha)
546 dst->cache_entry.flags.alpha = 1;
547 if (src && src->cache_entry.flags.alpha)
548 s = SP; 514 s = SP;
549 return copy_rel_gfx_span_func_cpu(s, m, c, d); 515 return copy_rel_gfx_span_func_cpu(s, m, c, d);
550} 516}
@@ -577,24 +543,22 @@ copy_rel_gfx_pt_func_cpu(int s, int m, int c, int d)
577} 543}
578 544
579static RGBA_Gfx_Pt_Func 545static RGBA_Gfx_Pt_Func
580op_copy_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 546op_copy_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
581{ 547{
582 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 548 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
583 549
584 if (src_flags.alpha) 550 if (src_alpha)
585 { 551 {
586 if (dst)
587 dst->cache_entry.flags.alpha = 1;
588 s = SP; 552 s = SP;
589 } 553 }
590 if (dst && dst->cache_entry.flags.alpha) 554 if (dst_alpha)
591 d = DP; 555 d = DP;
592 return copy_rel_gfx_pt_func_cpu(s, m, c, d); 556 return copy_rel_gfx_pt_func_cpu(s, m, c, d);
593} 557}
594 558
595/* XXX: not used 559/* XXX: not used
596static RGBA_Gfx_Pt_Func 560static RGBA_Gfx_Pt_Func
597op_copy_rel_color_pt_get(DATA32 col, RGBA_Image *dst) 561op_copy_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
598{ 562{
599 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 563 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
600 564
@@ -608,45 +572,39 @@ op_copy_rel_color_pt_get(DATA32 col, RGBA_Image *dst)
608 c = SC_AA; 572 c = SC_AA;
609 if (col == 0xffffffff) 573 if (col == 0xffffffff)
610 c = SC_N; 574 c = SC_N;
611 if (dst && dst->cache_entry.flags.alpha) 575 if (dst_alpha)
612 d = DP; 576 d = DP;
613 return copy_rel_gfx_pt_func_cpu(s, m, c, d); 577 return copy_rel_gfx_pt_func_cpu(s, m, c, d);
614} 578}
615*/ 579*/
616 580
617static RGBA_Gfx_Pt_Func 581static RGBA_Gfx_Pt_Func
618op_copy_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 582op_copy_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
619{ 583{
620 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 584 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
621 585
622 if (src_flags.alpha) 586 if (src_alpha)
623 { 587 {
624 if (dst)
625 dst->cache_entry.flags.alpha = 1;
626 s = SP; 588 s = SP;
627 } 589 }
628 if ((col >> 24) < 255) 590 if ((col >> 24) < 255)
629 { 591 {
630 if (dst)
631 dst->cache_entry.flags.alpha = 1;
632 c = SC; 592 c = SC;
633 } 593 }
634 if (col == ((col >> 24) * 0x01010101)) 594 if (col == ((col >> 24) * 0x01010101))
635 c = SC_AA; 595 c = SC_AA;
636 if (col == 0xffffffff) 596 if (col == 0xffffffff)
637 c = SC_N; 597 c = SC_N;
638 if (dst && dst->cache_entry.flags.alpha) 598 if (dst_alpha)
639 d = DP; 599 d = DP;
640 return copy_rel_gfx_pt_func_cpu(s, m, c, d); 600 return copy_rel_gfx_pt_func_cpu(s, m, c, d);
641} 601}
642 602
643static RGBA_Gfx_Pt_Func 603static RGBA_Gfx_Pt_Func
644op_copy_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 604op_copy_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED)
645{ 605{
646 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 606 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
647 607
648 if (dst)
649 dst->cache_entry.flags.alpha = 1;
650 if ((col >> 24) < 255) 608 if ((col >> 24) < 255)
651 c = SC; 609 c = SC;
652 if (col == ((col >> 24) * 0x01010101)) 610 if (col == ((col >> 24) * 0x01010101))
@@ -657,13 +615,11 @@ op_copy_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
657} 615}
658 616
659static RGBA_Gfx_Pt_Func 617static RGBA_Gfx_Pt_Func
660op_copy_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 618op_copy_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha EINA_UNUSED)
661{ 619{
662 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 620 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
663 621
664 if (dst) 622 if (src_alpha)
665 dst->cache_entry.flags.alpha = 1;
666 if (src_flags.alpha)
667 s = SP; 623 s = SP;
668 return copy_rel_gfx_pt_func_cpu(s, m, c, d); 624 return copy_rel_gfx_pt_func_cpu(s, m, c, d);
669} 625}
diff --git a/src/lib/evas/common/evas_op_mask_main_.c b/src/lib/evas/common/evas_op_mask_main_.c
index 8810dc960a..0304d72514 100644
--- a/src/lib/evas/common/evas_op_mask_main_.c
+++ b/src/lib/evas/common/evas_op_mask_main_.c
@@ -6,17 +6,17 @@ static RGBA_Gfx_Pt_Func op_mask_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CP
6static void op_mask_init(void); 6static void op_mask_init(void);
7static void op_mask_shutdown(void); 7static void op_mask_shutdown(void);
8 8
9static RGBA_Gfx_Func op_mask_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 9static RGBA_Gfx_Func op_mask_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
10static RGBA_Gfx_Func op_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_mask_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_mask_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_mask_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_mask_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
13static RGBA_Gfx_Func op_mask_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 13static RGBA_Gfx_Func op_mask_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
14 14
15static RGBA_Gfx_Pt_Func op_mask_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 15static RGBA_Gfx_Pt_Func op_mask_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
16static RGBA_Gfx_Pt_Func op_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_mask_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_mask_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_mask_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_mask_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
19static RGBA_Gfx_Pt_Func op_mask_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 19static RGBA_Gfx_Pt_Func op_mask_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
20 20
21static RGBA_Gfx_Compositor _composite_mask = { "mask", 21static RGBA_Gfx_Compositor _composite_mask = { "mask",
22 op_mask_init, op_mask_shutdown, 22 op_mask_init, op_mask_shutdown,
@@ -109,73 +109,64 @@ mask_gfx_span_func_cpu(int s, int m, int c, int d)
109} 109}
110 110
111static RGBA_Gfx_Func 111static RGBA_Gfx_Func
112op_mask_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 112op_mask_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
113{ 113{
114 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 114 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
115 115
116 if (src && src->cache_entry.flags.alpha) 116 if (src_alpha)
117 { 117 {
118 dst->cache_entry.flags.alpha = 1;
119 s = SP; 118 s = SP;
120 } 119 }
121 if (dst && dst->cache_entry.flags.alpha) 120 if (dst_alpha)
122 d = DP; 121 d = DP;
123 return mask_gfx_span_func_cpu(s, m, c, d); 122 return mask_gfx_span_func_cpu(s, m, c, d);
124} 123}
125 124
126static RGBA_Gfx_Func 125static RGBA_Gfx_Func
127op_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 126op_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
128{ 127{
129 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 128 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
130 129
131 if ((col >> 24) < 255) 130 if ((col >> 24) < 255)
132 { 131 {
133 if (dst)
134 dst->cache_entry.flags.alpha = 1;
135 c = SC; 132 c = SC;
136 } 133 }
137 if (col == (col | 0x00ffffff)) 134 if (col == (col | 0x00ffffff))
138 c = SC_AA; 135 c = SC_AA;
139 if (col == 0xffffffff) 136 if (col == 0xffffffff)
140 c = SC_N; 137 c = SC_N;
141 if (dst && dst->cache_entry.flags.alpha) 138 if (dst_alpha)
142 d = DP; 139 d = DP;
143 return mask_gfx_span_func_cpu(s, m, c, d); 140 return mask_gfx_span_func_cpu(s, m, c, d);
144} 141}
145 142
146static RGBA_Gfx_Func 143static RGBA_Gfx_Func
147op_mask_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 144op_mask_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
148{ 145{
149 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 146 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
150 147
151 if (src && src->cache_entry.flags.alpha) 148 if (src_alpha)
152 { 149 {
153 if (dst)
154 dst->cache_entry.flags.alpha = 1;
155 s = SP; 150 s = SP;
156 } 151 }
157 if ((col >> 24) < 255) 152 if ((col >> 24) < 255)
158 { 153 {
159 if (dst)
160 dst->cache_entry.flags.alpha = 1;
161 c = SC; 154 c = SC;
162 } 155 }
163 if (col == (col | 0x00ffffff)) 156 if (col == (col | 0x00ffffff))
164 c = SC_AA; 157 c = SC_AA;
165 if (col == 0xffffffff) 158 if (col == 0xffffffff)
166 c = SC_N; 159 c = SC_N;
167 if (dst && dst->cache_entry.flags.alpha) 160 if (dst_alpha)
168 d = DP; 161 d = DP;
169 return mask_gfx_span_func_cpu(s, m, c, d); 162 return mask_gfx_span_func_cpu(s, m, c, d);
170} 163}
171 164
172static RGBA_Gfx_Func 165static RGBA_Gfx_Func
173op_mask_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 166op_mask_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
174{ 167{
175 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 168 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
176 169
177 if (dst)
178 dst->cache_entry.flags.alpha = 1;
179 if ((col >> 24) < 255) 170 if ((col >> 24) < 255)
180 c = SC; 171 c = SC;
181 if (col == (col | 0x00ffffff)) 172 if (col == (col | 0x00ffffff))
@@ -186,13 +177,11 @@ op_mask_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
186} 177}
187 178
188static RGBA_Gfx_Func 179static RGBA_Gfx_Func
189op_mask_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 180op_mask_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
190{ 181{
191 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 182 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
192 183
193 if (dst) 184 if (src_alpha)
194 dst->cache_entry.flags.alpha = 1;
195 if (src && src->cache_entry.flags.alpha)
196 s = SP; 185 s = SP;
197 return mask_gfx_span_func_cpu(s, m, c, d); 186 return mask_gfx_span_func_cpu(s, m, c, d);
198} 187}
@@ -217,73 +206,64 @@ mask_gfx_pt_func_cpu(int s, int m, int c, int d)
217} 206}
218 207
219static RGBA_Gfx_Pt_Func 208static RGBA_Gfx_Pt_Func
220op_mask_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 209op_mask_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
221{ 210{
222 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 211 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
223 212
224 if (src_flags.alpha) 213 if (src_alpha)
225 { 214 {
226 dst->cache_entry.flags.alpha = 1;
227 s = SP; 215 s = SP;
228 } 216 }
229 if (dst && dst->cache_entry.flags.alpha) 217 if (dst_alpha)
230 d = DP; 218 d = DP;
231 return mask_gfx_pt_func_cpu(s, m, c, d); 219 return mask_gfx_pt_func_cpu(s, m, c, d);
232} 220}
233 221
234static RGBA_Gfx_Pt_Func 222static RGBA_Gfx_Pt_Func
235op_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 223op_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
236{ 224{
237 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 225 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
238 226
239 if ((col >> 24) < 255) 227 if ((col >> 24) < 255)
240 { 228 {
241 if (dst)
242 dst->cache_entry.flags.alpha = 1;
243 c = SC; 229 c = SC;
244 } 230 }
245 if (col == (col | 0x00ffffff)) 231 if (col == (col | 0x00ffffff))
246 c = SC_AA; 232 c = SC_AA;
247 if (col == 0xffffffff) 233 if (col == 0xffffffff)
248 c = SC_N; 234 c = SC_N;
249 if (dst && dst->cache_entry.flags.alpha) 235 if (dst_alpha)
250 d = DP; 236 d = DP;
251 return mask_gfx_pt_func_cpu(s, m, c, d); 237 return mask_gfx_pt_func_cpu(s, m, c, d);
252} 238}
253 239
254static RGBA_Gfx_Pt_Func 240static RGBA_Gfx_Pt_Func
255op_mask_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 241op_mask_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
256{ 242{
257 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 243 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
258 244
259 if (src_flags.alpha) 245 if (src_alpha)
260 { 246 {
261 if (dst)
262 dst->cache_entry.flags.alpha = 1;
263 s = SP; 247 s = SP;
264 } 248 }
265 if ((col >> 24) < 255) 249 if ((col >> 24) < 255)
266 { 250 {
267 if (dst)
268 dst->cache_entry.flags.alpha = 1;
269 c = SC; 251 c = SC;
270 } 252 }
271 if (col == (col | 0x00ffffff)) 253 if (col == (col | 0x00ffffff))
272 c = SC_AA; 254 c = SC_AA;
273 if (col == 0xffffffff) 255 if (col == 0xffffffff)
274 c = SC_N; 256 c = SC_N;
275 if (dst && dst->cache_entry.flags.alpha) 257 if (dst_alpha)
276 d = DP; 258 d = DP;
277 return mask_gfx_pt_func_cpu(s, m, c, d); 259 return mask_gfx_pt_func_cpu(s, m, c, d);
278} 260}
279 261
280static RGBA_Gfx_Pt_Func 262static RGBA_Gfx_Pt_Func
281op_mask_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 263op_mask_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED)
282{ 264{
283 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 265 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
284 266
285 if (dst)
286 dst->cache_entry.flags.alpha = 1;
287 if ((col >> 24) < 255) 267 if ((col >> 24) < 255)
288 c = SC; 268 c = SC;
289 if (col == (col | 0x00ffffff)) 269 if (col == (col | 0x00ffffff))
@@ -294,13 +274,11 @@ op_mask_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
294} 274}
295 275
296static RGBA_Gfx_Pt_Func 276static RGBA_Gfx_Pt_Func
297op_mask_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 277op_mask_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha EINA_UNUSED)
298{ 278{
299 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 279 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
300 280
301 if (dst) 281 if (src_alpha)
302 dst->cache_entry.flags.alpha = 1;
303 if (src_flags.alpha)
304 s = SP; 282 s = SP;
305 return mask_gfx_pt_func_cpu(s, m, c, d); 283 return mask_gfx_pt_func_cpu(s, m, c, d);
306} 284}
diff --git a/src/lib/evas/common/evas_op_mul_main_.c b/src/lib/evas/common/evas_op_mul_main_.c
index 7c15807085..8d70e2a5b1 100644
--- a/src/lib/evas/common/evas_op_mul_main_.c
+++ b/src/lib/evas/common/evas_op_mul_main_.c
@@ -6,17 +6,17 @@ static RGBA_Gfx_Pt_Func op_mul_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU
6static void op_mul_init(void); 6static void op_mul_init(void);
7static void op_mul_shutdown(void); 7static void op_mul_shutdown(void);
8 8
9static RGBA_Gfx_Func op_mul_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 9static RGBA_Gfx_Func op_mul_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
10static RGBA_Gfx_Func op_mul_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_mul_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_mul_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_mul_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_mul_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_mul_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
13static RGBA_Gfx_Func op_mul_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 13static RGBA_Gfx_Func op_mul_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
14 14
15static RGBA_Gfx_Pt_Func op_mul_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 15static RGBA_Gfx_Pt_Func op_mul_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
16static RGBA_Gfx_Pt_Func op_mul_color_pt_get(DATA32 col, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_mul_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_mul_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_mul_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_mul_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_mul_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
19static RGBA_Gfx_Pt_Func op_mul_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 19static RGBA_Gfx_Pt_Func op_mul_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
20 20
21static RGBA_Gfx_Compositor _composite_mul = { "mul", 21static RGBA_Gfx_Compositor _composite_mul = { "mul",
22 op_mul_init, op_mul_shutdown, 22 op_mul_init, op_mul_shutdown,
@@ -108,73 +108,64 @@ mul_gfx_span_func_cpu(int s, int m, int c, int d)
108} 108}
109 109
110static RGBA_Gfx_Func 110static RGBA_Gfx_Func
111op_mul_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 111op_mul_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
112{ 112{
113 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 113 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
114 114
115 if (src && src->cache_entry.flags.alpha) 115 if (src_alpha)
116 { 116 {
117 dst->cache_entry.flags.alpha = 1;
118 s = SP; 117 s = SP;
119 } 118 }
120 if (dst && dst->cache_entry.flags.alpha) 119 if (dst_alpha)
121 d = DP; 120 d = DP;
122 return mul_gfx_span_func_cpu(s, m, c, d); 121 return mul_gfx_span_func_cpu(s, m, c, d);
123} 122}
124 123
125static RGBA_Gfx_Func 124static RGBA_Gfx_Func
126op_mul_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 125op_mul_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
127{ 126{
128 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 127 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
129 128
130 if ((col >> 24) < 255) 129 if ((col >> 24) < 255)
131 { 130 {
132 if (dst)
133 dst->cache_entry.flags.alpha = 1;
134 c = SC; 131 c = SC;
135 } 132 }
136 if (col == (col | 0x00ffffff)) 133 if (col == (col | 0x00ffffff))
137 c = SC_AA; 134 c = SC_AA;
138 if (col == 0xffffffff) 135 if (col == 0xffffffff)
139 c = SC_N; 136 c = SC_N;
140 if (dst && dst->cache_entry.flags.alpha) 137 if (dst_alpha)
141 d = DP; 138 d = DP;
142 return mul_gfx_span_func_cpu(s, m, c, d); 139 return mul_gfx_span_func_cpu(s, m, c, d);
143} 140}
144 141
145static RGBA_Gfx_Func 142static RGBA_Gfx_Func
146op_mul_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 143op_mul_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
147{ 144{
148 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 145 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
149 146
150 if (src && src->cache_entry.flags.alpha) 147 if (src_alpha)
151 { 148 {
152 if (dst)
153 dst->cache_entry.flags.alpha = 1;
154 s = SP; 149 s = SP;
155 } 150 }
156 if ((col >> 24) < 255) 151 if ((col >> 24) < 255)
157 { 152 {
158 if (dst)
159 dst->cache_entry.flags.alpha = 1;
160 c = SC; 153 c = SC;
161 } 154 }
162 if (col == (col | 0x00ffffff)) 155 if (col == (col | 0x00ffffff))
163 c = SC_AA; 156 c = SC_AA;
164 if (col == 0xffffffff) 157 if (col == 0xffffffff)
165 c = SC_N; 158 c = SC_N;
166 if (dst && dst->cache_entry.flags.alpha) 159 if (dst_alpha)
167 d = DP; 160 d = DP;
168 return mul_gfx_span_func_cpu(s, m, c, d); 161 return mul_gfx_span_func_cpu(s, m, c, d);
169} 162}
170 163
171static RGBA_Gfx_Func 164static RGBA_Gfx_Func
172op_mul_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 165op_mul_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
173{ 166{
174 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 167 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
175 168
176 if (dst)
177 dst->cache_entry.flags.alpha = 1;
178 if ((col >> 24) < 255) 169 if ((col >> 24) < 255)
179 c = SC; 170 c = SC;
180 if (col == (col | 0x00ffffff)) 171 if (col == (col | 0x00ffffff))
@@ -185,13 +176,11 @@ op_mul_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
185} 176}
186 177
187static RGBA_Gfx_Func 178static RGBA_Gfx_Func
188op_mul_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 179op_mul_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha EINA_UNUSED, int pixels EINA_UNUSED)
189{ 180{
190 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 181 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
191 182
192 if (dst) 183 if (src_alpha)
193 dst->cache_entry.flags.alpha = 1;
194 if (src && src->cache_entry.flags.alpha)
195 s = SP; 184 s = SP;
196 return mul_gfx_span_func_cpu(s, m, c, d); 185 return mul_gfx_span_func_cpu(s, m, c, d);
197} 186}
@@ -216,73 +205,64 @@ mul_gfx_pt_func_cpu(int s, int m, int c, int d)
216} 205}
217 206
218static RGBA_Gfx_Pt_Func 207static RGBA_Gfx_Pt_Func
219op_mul_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 208op_mul_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
220{ 209{
221 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 210 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
222 211
223 if (src_flags.alpha) 212 if (src_alpha)
224 { 213 {
225 dst->cache_entry.flags.alpha = 1;
226 s = SP; 214 s = SP;
227 } 215 }
228 if (dst && dst->cache_entry.flags.alpha) 216 if (dst_alpha)
229 d = DP; 217 d = DP;
230 return mul_gfx_pt_func_cpu(s, m, c, d); 218 return mul_gfx_pt_func_cpu(s, m, c, d);
231} 219}
232 220
233static RGBA_Gfx_Pt_Func 221static RGBA_Gfx_Pt_Func
234op_mul_color_pt_get(DATA32 col, RGBA_Image *dst) 222op_mul_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
235{ 223{
236 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 224 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
237 225
238 if ((col >> 24) < 255) 226 if ((col >> 24) < 255)
239 { 227 {
240 if (dst)
241 dst->cache_entry.flags.alpha = 1;
242 c = SC; 228 c = SC;
243 } 229 }
244 if (col == (col | 0x00ffffff)) 230 if (col == (col | 0x00ffffff))
245 c = SC_AA; 231 c = SC_AA;
246 if (col == 0xffffffff) 232 if (col == 0xffffffff)
247 c = SC_N; 233 c = SC_N;
248 if (dst && dst->cache_entry.flags.alpha) 234 if (dst_alpha)
249 d = DP; 235 d = DP;
250 return mul_gfx_pt_func_cpu(s, m, c, d); 236 return mul_gfx_pt_func_cpu(s, m, c, d);
251} 237}
252 238
253static RGBA_Gfx_Pt_Func 239static RGBA_Gfx_Pt_Func
254op_mul_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 240op_mul_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
255{ 241{
256 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 242 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
257 243
258 if (src_flags.alpha) 244 if (src_alpha)
259 { 245 {
260 if (dst)
261 dst->cache_entry.flags.alpha = 1;
262 s = SP; 246 s = SP;
263 } 247 }
264 if ((col >> 24) < 255) 248 if ((col >> 24) < 255)
265 { 249 {
266 if (dst)
267 dst->cache_entry.flags.alpha = 1;
268 c = SC; 250 c = SC;
269 } 251 }
270 if (col == (col | 0x00ffffff)) 252 if (col == (col | 0x00ffffff))
271 c = SC_AA; 253 c = SC_AA;
272 if (col == 0xffffffff) 254 if (col == 0xffffffff)
273 c = SC_N; 255 c = SC_N;
274 if (dst && dst->cache_entry.flags.alpha) 256 if (dst_alpha)
275 d = DP; 257 d = DP;
276 return mul_gfx_pt_func_cpu(s, m, c, d); 258 return mul_gfx_pt_func_cpu(s, m, c, d);
277} 259}
278 260
279static RGBA_Gfx_Pt_Func 261static RGBA_Gfx_Pt_Func
280op_mul_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 262op_mul_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha EINA_UNUSED)
281{ 263{
282 int s = SP_N, m = SM_AS, c = SC_AN, d = DP; 264 int s = SP_N, m = SM_AS, c = SC_AN, d = DP;
283 265
284 if (dst)
285 dst->cache_entry.flags.alpha = 1;
286 if ((col >> 24) < 255) 266 if ((col >> 24) < 255)
287 c = SC; 267 c = SC;
288 if (col == (col | 0x00ffffff)) 268 if (col == (col | 0x00ffffff))
@@ -293,13 +273,11 @@ op_mul_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
293} 273}
294 274
295static RGBA_Gfx_Pt_Func 275static RGBA_Gfx_Pt_Func
296op_mul_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 276op_mul_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha EINA_UNUSED)
297{ 277{
298 int s = SP_AN, m = SM_AS, c = SC_N, d = DP; 278 int s = SP_AN, m = SM_AS, c = SC_N, d = DP;
299 279
300 if (dst) 280 if (src_alpha)
301 dst->cache_entry.flags.alpha = 1;
302 if (src_flags.alpha)
303 s = SP; 281 s = SP;
304 return mul_gfx_pt_func_cpu(s, m, c, d); 282 return mul_gfx_pt_func_cpu(s, m, c, d);
305} 283}
diff --git a/src/lib/evas/common/evas_op_sub_main_.c b/src/lib/evas/common/evas_op_sub_main_.c
index 5045a12c96..cd26e911e2 100644
--- a/src/lib/evas/common/evas_op_sub_main_.c
+++ b/src/lib/evas/common/evas_op_sub_main_.c
@@ -6,17 +6,17 @@ static RGBA_Gfx_Pt_Func op_sub_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU
6static void op_sub_init(void); 6static void op_sub_init(void);
7static void op_sub_shutdown(void); 7static void op_sub_shutdown(void);
8 8
9static RGBA_Gfx_Func op_sub_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 9static RGBA_Gfx_Func op_sub_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
10static RGBA_Gfx_Func op_sub_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 10static RGBA_Gfx_Func op_sub_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
11static RGBA_Gfx_Func op_sub_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 11static RGBA_Gfx_Func op_sub_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
12static RGBA_Gfx_Func op_sub_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 12static RGBA_Gfx_Func op_sub_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
13static RGBA_Gfx_Func op_sub_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 13static RGBA_Gfx_Func op_sub_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels);
14 14
15static RGBA_Gfx_Pt_Func op_sub_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 15static RGBA_Gfx_Pt_Func op_sub_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
16static RGBA_Gfx_Pt_Func op_sub_color_pt_get(DATA32 col, RGBA_Image *dst); 16static RGBA_Gfx_Pt_Func op_sub_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
17static RGBA_Gfx_Pt_Func op_sub_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 17static RGBA_Gfx_Pt_Func op_sub_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
18static RGBA_Gfx_Pt_Func op_sub_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 18static RGBA_Gfx_Pt_Func op_sub_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
19static RGBA_Gfx_Pt_Func op_sub_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 19static RGBA_Gfx_Pt_Func op_sub_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
20 20
21static RGBA_Gfx_Compositor _composite_sub = { "sub", 21static RGBA_Gfx_Compositor _composite_sub = { "sub",
22 op_sub_init, op_sub_shutdown, 22 op_sub_init, op_sub_shutdown,
@@ -40,17 +40,17 @@ static RGBA_Gfx_Pt_Func op_sub_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST]
40static void op_sub_rel_init(void); 40static void op_sub_rel_init(void);
41static void op_sub_rel_shutdown(void); 41static void op_sub_rel_shutdown(void);
42 42
43static RGBA_Gfx_Func op_sub_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 43static RGBA_Gfx_Func op_sub_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
44static RGBA_Gfx_Func op_sub_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 44static RGBA_Gfx_Func op_sub_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
45static RGBA_Gfx_Func op_sub_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 45static RGBA_Gfx_Func op_sub_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
46static RGBA_Gfx_Func op_sub_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels); 46static RGBA_Gfx_Func op_sub_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels);
47static RGBA_Gfx_Func op_sub_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels); 47static RGBA_Gfx_Func op_sub_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
48 48
49static RGBA_Gfx_Pt_Func op_sub_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 49static RGBA_Gfx_Pt_Func op_sub_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
50static RGBA_Gfx_Pt_Func op_sub_rel_color_pt_get(DATA32 col, RGBA_Image *dst); 50static RGBA_Gfx_Pt_Func op_sub_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
51static RGBA_Gfx_Pt_Func op_sub_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 51static RGBA_Gfx_Pt_Func op_sub_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
52static RGBA_Gfx_Pt_Func op_sub_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst); 52static RGBA_Gfx_Pt_Func op_sub_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha);
53static RGBA_Gfx_Pt_Func op_sub_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst); 53static RGBA_Gfx_Pt_Func op_sub_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha);
54 54
55static RGBA_Gfx_Compositor _composite_sub_rel = { "sub_rel", 55static RGBA_Gfx_Compositor _composite_sub_rel = { "sub_rel",
56 op_sub_rel_init, op_sub_rel_shutdown, 56 op_sub_rel_init, op_sub_rel_shutdown,
@@ -142,19 +142,19 @@ sub_gfx_span_func_cpu(int s, int m, int c, int d)
142} 142}
143 143
144static RGBA_Gfx_Func 144static RGBA_Gfx_Func
145op_sub_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 145op_sub_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
146{ 146{
147 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 147 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
148 148
149 if (src && src->cache_entry.flags.alpha) 149 if (src_alpha)
150 s = SP; 150 s = SP;
151 if (dst && dst->cache_entry.flags.alpha) 151 if (dst_alpha)
152 d = DP; 152 d = DP;
153 return sub_gfx_span_func_cpu(s, m, c, d); 153 return sub_gfx_span_func_cpu(s, m, c, d);
154} 154}
155 155
156static RGBA_Gfx_Func 156static RGBA_Gfx_Func
157op_sub_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 157op_sub_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
158{ 158{
159 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 159 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
160 160
@@ -164,17 +164,17 @@ op_sub_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
164 c = SC_AA; 164 c = SC_AA;
165 if (col == 0xffffffff) 165 if (col == 0xffffffff)
166 c = SC_N; 166 c = SC_N;
167 if (dst && dst->cache_entry.flags.alpha) 167 if (dst_alpha)
168 d = DP; 168 d = DP;
169 return sub_gfx_span_func_cpu(s, m, c, d); 169 return sub_gfx_span_func_cpu(s, m, c, d);
170} 170}
171 171
172static RGBA_Gfx_Func 172static RGBA_Gfx_Func
173op_sub_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 173op_sub_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
174{ 174{
175 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 175 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
176 176
177 if (src && src->cache_entry.flags.alpha) 177 if (src_alpha)
178 s = SP; 178 s = SP;
179 if ((col >> 24) < 255) 179 if ((col >> 24) < 255)
180 c = SC; 180 c = SC;
@@ -182,13 +182,13 @@ op_sub_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pi
182 c = SC_AA; 182 c = SC_AA;
183 if (col == 0xffffffff) 183 if (col == 0xffffffff)
184 c = SC_N; 184 c = SC_N;
185 if (dst && dst->cache_entry.flags.alpha) 185 if (dst_alpha)
186 d = DP; 186 d = DP;
187 return sub_gfx_span_func_cpu(s, m, c, d); 187 return sub_gfx_span_func_cpu(s, m, c, d);
188} 188}
189 189
190static RGBA_Gfx_Func 190static RGBA_Gfx_Func
191op_sub_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 191op_sub_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
192{ 192{
193 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 193 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
194 194
@@ -198,19 +198,19 @@ op_sub_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
198 c = SC_AA; 198 c = SC_AA;
199 if (col == 0xffffffff) 199 if (col == 0xffffffff)
200 c = SC_N; 200 c = SC_N;
201 if (dst && dst->cache_entry.flags.alpha) 201 if (dst_alpha)
202 d = DP; 202 d = DP;
203 return sub_gfx_span_func_cpu(s, m, c, d); 203 return sub_gfx_span_func_cpu(s, m, c, d);
204} 204}
205 205
206static RGBA_Gfx_Func 206static RGBA_Gfx_Func
207op_sub_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 207op_sub_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
208{ 208{
209 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 209 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
210 210
211 if (src && src->cache_entry.flags.alpha) 211 if (src_alpha)
212 s = SP; 212 s = SP;
213 if (dst && dst->cache_entry.flags.alpha) 213 if (dst_alpha)
214 d = DP; 214 d = DP;
215 return sub_gfx_span_func_cpu(s, m, c, d); 215 return sub_gfx_span_func_cpu(s, m, c, d);
216} 216}
@@ -235,19 +235,19 @@ sub_gfx_pt_func_cpu(int s, int m, int c, int d)
235} 235}
236 236
237static RGBA_Gfx_Pt_Func 237static RGBA_Gfx_Pt_Func
238op_sub_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 238op_sub_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
239{ 239{
240 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 240 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
241 241
242 if (src_flags.alpha) 242 if (src_alpha)
243 s = SP; 243 s = SP;
244 if (dst && dst->cache_entry.flags.alpha) 244 if (dst_alpha)
245 d = DP; 245 d = DP;
246 return sub_gfx_pt_func_cpu(s, m, c, d); 246 return sub_gfx_pt_func_cpu(s, m, c, d);
247} 247}
248 248
249static RGBA_Gfx_Pt_Func 249static RGBA_Gfx_Pt_Func
250op_sub_color_pt_get(DATA32 col, RGBA_Image *dst) 250op_sub_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
251{ 251{
252 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 252 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
253 253
@@ -257,17 +257,17 @@ op_sub_color_pt_get(DATA32 col, RGBA_Image *dst)
257 c = SC_AA; 257 c = SC_AA;
258 if (col == 0xffffffff) 258 if (col == 0xffffffff)
259 c = SC_N; 259 c = SC_N;
260 if (dst && dst->cache_entry.flags.alpha) 260 if (dst_alpha)
261 d = DP; 261 d = DP;
262 return sub_gfx_pt_func_cpu(s, m, c, d); 262 return sub_gfx_pt_func_cpu(s, m, c, d);
263} 263}
264 264
265static RGBA_Gfx_Pt_Func 265static RGBA_Gfx_Pt_Func
266op_sub_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 266op_sub_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
267{ 267{
268 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 268 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
269 269
270 if (src_flags.alpha) 270 if (src_alpha)
271 s = SP; 271 s = SP;
272 if ((col >> 24) < 255) 272 if ((col >> 24) < 255)
273 c = SC; 273 c = SC;
@@ -275,13 +275,13 @@ op_sub_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *d
275 c = SC_AA; 275 c = SC_AA;
276 if (col == 0xffffffff) 276 if (col == 0xffffffff)
277 c = SC_N; 277 c = SC_N;
278 if (dst && dst->cache_entry.flags.alpha) 278 if (dst_alpha)
279 d = DP; 279 d = DP;
280 return sub_gfx_pt_func_cpu(s, m, c, d); 280 return sub_gfx_pt_func_cpu(s, m, c, d);
281} 281}
282 282
283static RGBA_Gfx_Pt_Func 283static RGBA_Gfx_Pt_Func
284op_sub_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 284op_sub_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
285{ 285{
286 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 286 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
287 287
@@ -291,19 +291,19 @@ op_sub_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
291 c = SC_AA; 291 c = SC_AA;
292 if (col == 0xffffffff) 292 if (col == 0xffffffff)
293 c = SC_N; 293 c = SC_N;
294 if (dst && dst->cache_entry.flags.alpha) 294 if (dst_alpha)
295 d = DP; 295 d = DP;
296 return sub_gfx_pt_func_cpu(s, m, c, d); 296 return sub_gfx_pt_func_cpu(s, m, c, d);
297} 297}
298 298
299static RGBA_Gfx_Pt_Func 299static RGBA_Gfx_Pt_Func
300op_sub_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 300op_sub_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
301{ 301{
302 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 302 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
303 303
304 if (src_flags.alpha) 304 if (src_alpha)
305 s = SP; 305 s = SP;
306 if (dst && dst->cache_entry.flags.alpha) 306 if (dst_alpha)
307 d = DP; 307 d = DP;
308 return sub_gfx_pt_func_cpu(s, m, c, d); 308 return sub_gfx_pt_func_cpu(s, m, c, d);
309} 309}
@@ -366,19 +366,19 @@ sub_rel_gfx_span_func_cpu(int s, int m, int c, int d)
366} 366}
367 367
368static RGBA_Gfx_Func 368static RGBA_Gfx_Func
369op_sub_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 369op_sub_rel_pixel_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
370{ 370{
371 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 371 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
372 372
373 if (src && src->cache_entry.flags.alpha) 373 if (src_alpha)
374 s = SP; 374 s = SP;
375 if (dst && dst->cache_entry.flags.alpha) 375 if (dst_alpha)
376 d = DP; 376 d = DP;
377 return sub_rel_gfx_span_func_cpu(s, m, c, d); 377 return sub_rel_gfx_span_func_cpu(s, m, c, d);
378} 378}
379 379
380static RGBA_Gfx_Func 380static RGBA_Gfx_Func
381op_sub_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 381op_sub_rel_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
382{ 382{
383 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 383 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
384 384
@@ -388,17 +388,17 @@ op_sub_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED)
388 c = SC_AA; 388 c = SC_AA;
389 if (col == 0xffffffff) 389 if (col == 0xffffffff)
390 c = SC_N; 390 c = SC_N;
391 if (dst && dst->cache_entry.flags.alpha) 391 if (dst_alpha)
392 d = DP; 392 d = DP;
393 return sub_rel_gfx_span_func_cpu(s, m, c, d); 393 return sub_rel_gfx_span_func_cpu(s, m, c, d);
394} 394}
395 395
396static RGBA_Gfx_Func 396static RGBA_Gfx_Func
397op_sub_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 397op_sub_rel_pixel_color_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
398{ 398{
399 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 399 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
400 400
401 if (src && src->cache_entry.flags.alpha) 401 if (src_alpha)
402 s = SP; 402 s = SP;
403 if ((col >> 24) < 255) 403 if ((col >> 24) < 255)
404 c = SC; 404 c = SC;
@@ -406,13 +406,13 @@ op_sub_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, in
406 c = SC_AA; 406 c = SC_AA;
407 if (col == 0xffffffff) 407 if (col == 0xffffffff)
408 c = SC_N; 408 c = SC_N;
409 if (dst && dst->cache_entry.flags.alpha) 409 if (dst_alpha)
410 d = DP; 410 d = DP;
411 return sub_rel_gfx_span_func_cpu(s, m, c, d); 411 return sub_rel_gfx_span_func_cpu(s, m, c, d);
412} 412}
413 413
414static RGBA_Gfx_Func 414static RGBA_Gfx_Func
415op_sub_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUSED) 415op_sub_rel_mask_color_span_get(DATA32 col, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
416{ 416{
417 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 417 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
418 418
@@ -422,19 +422,19 @@ op_sub_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels EINA_UNUS
422 c = SC_AA; 422 c = SC_AA;
423 if (col == 0xffffffff) 423 if (col == 0xffffffff)
424 c = SC_N; 424 c = SC_N;
425 if (dst && dst->cache_entry.flags.alpha) 425 if (dst_alpha)
426 d = DP; 426 d = DP;
427 return sub_rel_gfx_span_func_cpu(s, m, c, d); 427 return sub_rel_gfx_span_func_cpu(s, m, c, d);
428} 428}
429 429
430static RGBA_Gfx_Func 430static RGBA_Gfx_Func
431op_sub_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels EINA_UNUSED) 431op_sub_rel_pixel_mask_span_get(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha EINA_UNUSED, Eina_Bool dst_alpha, int pixels EINA_UNUSED)
432{ 432{
433 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 433 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
434 434
435 if (src && src->cache_entry.flags.alpha) 435 if (src_alpha)
436 s = SP; 436 s = SP;
437 if (dst && dst->cache_entry.flags.alpha) 437 if (dst_alpha)
438 d = DP; 438 d = DP;
439 return sub_rel_gfx_span_func_cpu(s, m, c, d); 439 return sub_rel_gfx_span_func_cpu(s, m, c, d);
440} 440}
@@ -459,19 +459,19 @@ sub_rel_gfx_pt_func_cpu(int s, int m, int c, int d)
459} 459}
460 460
461static RGBA_Gfx_Pt_Func 461static RGBA_Gfx_Pt_Func
462op_sub_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 462op_sub_rel_pixel_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
463{ 463{
464 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN; 464 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
465 465
466 if (src_flags.alpha) 466 if (src_alpha)
467 s = SP; 467 s = SP;
468 if (dst && dst->cache_entry.flags.alpha) 468 if (dst_alpha)
469 d = DP; 469 d = DP;
470 return sub_rel_gfx_pt_func_cpu(s, m, c, d); 470 return sub_rel_gfx_pt_func_cpu(s, m, c, d);
471} 471}
472 472
473static RGBA_Gfx_Pt_Func 473static RGBA_Gfx_Pt_Func
474op_sub_rel_color_pt_get(DATA32 col, RGBA_Image *dst) 474op_sub_rel_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
475{ 475{
476 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN; 476 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
477 477
@@ -481,17 +481,17 @@ op_sub_rel_color_pt_get(DATA32 col, RGBA_Image *dst)
481 c = SC_AA; 481 c = SC_AA;
482 if (col == 0xffffffff) 482 if (col == 0xffffffff)
483 c = SC_N; 483 c = SC_N;
484 if (dst && dst->cache_entry.flags.alpha) 484 if (dst_alpha)
485 d = DP; 485 d = DP;
486 return sub_rel_gfx_pt_func_cpu(s, m, c, d); 486 return sub_rel_gfx_pt_func_cpu(s, m, c, d);
487} 487}
488 488
489static RGBA_Gfx_Pt_Func 489static RGBA_Gfx_Pt_Func
490op_sub_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst) 490op_sub_rel_pixel_color_pt_get(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha)
491{ 491{
492 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN; 492 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
493 493
494 if (src_flags.alpha) 494 if (src_alpha)
495 s = SP; 495 s = SP;
496 if ((col >> 24) < 255) 496 if ((col >> 24) < 255)
497 c = SC; 497 c = SC;
@@ -499,13 +499,13 @@ op_sub_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Imag
499 c = SC_AA; 499 c = SC_AA;
500 if (col == 0xffffffff) 500 if (col == 0xffffffff)
501 c = SC_N; 501 c = SC_N;
502 if (dst && dst->cache_entry.flags.alpha) 502 if (dst_alpha)
503 d = DP; 503 d = DP;
504 return sub_rel_gfx_pt_func_cpu(s, m, c, d); 504 return sub_rel_gfx_pt_func_cpu(s, m, c, d);
505} 505}
506 506
507static RGBA_Gfx_Pt_Func 507static RGBA_Gfx_Pt_Func
508op_sub_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst) 508op_sub_rel_mask_color_pt_get(DATA32 col, Eina_Bool dst_alpha)
509{ 509{
510 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN; 510 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
511 511
@@ -515,19 +515,19 @@ op_sub_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
515 c = SC_AA; 515 c = SC_AA;
516 if (col == 0xffffffff) 516 if (col == 0xffffffff)
517 c = SC_N; 517 c = SC_N;
518 if (dst && dst->cache_entry.flags.alpha) 518 if (dst_alpha)
519 d = DP; 519 d = DP;
520 return sub_rel_gfx_pt_func_cpu(s, m, c, d); 520 return sub_rel_gfx_pt_func_cpu(s, m, c, d);
521} 521}
522 522
523static RGBA_Gfx_Pt_Func 523static RGBA_Gfx_Pt_Func
524op_sub_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst) 524op_sub_rel_pixel_mask_pt_get(Eina_Bool src_alpha, Eina_Bool dst_alpha)
525{ 525{
526 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN; 526 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
527 527
528 if (src_flags.alpha) 528 if (src_alpha)
529 s = SP; 529 s = SP;
530 if (dst && dst->cache_entry.flags.alpha) 530 if (dst_alpha)
531 d = DP; 531 d = DP;
532 return sub_rel_gfx_pt_func_cpu(s, m, c, d); 532 return sub_rel_gfx_pt_func_cpu(s, m, c, d);
533} 533}
diff --git a/src/lib/evas/common/evas_polygon_main.c b/src/lib/evas/common/evas_polygon_main.c
index 2d14e8d9aa..db56cdb61e 100644
--- a/src/lib/evas/common/evas_polygon_main.c
+++ b/src/lib/evas/common/evas_polygon_main.c
@@ -279,7 +279,7 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po
279 free(point); 279 free(point);
280 free(sorted_index); 280 free(sorted_index);
281 281
282 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, 1, dc->render_op); 282 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst->cache_entry.flags.alpha, 1, dc->render_op);
283 if (spans) 283 if (spans)
284 { 284 {
285 RGBA_Span *span; 285 RGBA_Span *span;
@@ -435,7 +435,7 @@ evas_common_polygon_rgba_draw(RGBA_Image *dst, int ext_x, int ext_y, int ext_w,
435 free(point); 435 free(point);
436 free(sorted_index); 436 free(sorted_index);
437 437
438 func = evas_common_gfx_func_composite_color_span_get(col, dst, 1, render_op); 438 func = evas_common_gfx_func_composite_color_span_get(col, dst->cache_entry.flags.alpha, 1, render_op);
439 if (spans) 439 if (spans)
440 { 440 {
441 RGBA_Span *span; 441 RGBA_Span *span;
diff --git a/src/lib/evas/common/evas_rectangle_main.c b/src/lib/evas/common/evas_rectangle_main.c
index 34df87151b..68a5ffc720 100644
--- a/src/lib/evas/common/evas_rectangle_main.c
+++ b/src/lib/evas/common/evas_rectangle_main.c
@@ -132,7 +132,7 @@ rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, in
132# endif 132# endif
133#endif 133#endif
134 { 134 {
135 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); 135 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst->cache_entry.flags.alpha, w, dc->render_op);
136 ptr = dst->image.data + (y * dst->cache_entry.w) + x; 136 ptr = dst->image.data + (y * dst->cache_entry.w) + x;
137 for (yy = 0; yy < h; yy++) 137 for (yy = 0; yy < h; yy++)
138 { 138 {
@@ -150,7 +150,7 @@ evas_common_rectangle_rgba_draw(RGBA_Image *dst, DATA32 color, int render_op, in
150 DATA32 *ptr; 150 DATA32 *ptr;
151 int yy; 151 int yy;
152 152
153 func = evas_common_gfx_func_composite_color_span_get(color, dst, w, render_op); 153 func = evas_common_gfx_func_composite_color_span_get(color, dst->cache_entry.flags.alpha, w, render_op);
154 ptr = dst->image.data + (y * dst->cache_entry.w) + x; 154 ptr = dst->image.data + (y * dst->cache_entry.w) + x;
155 for (yy = 0; yy < h; yy++) 155 for (yy = 0; yy < h; yy++)
156 { 156 {
diff --git a/src/lib/evas/common/evas_scale_sample.c b/src/lib/evas/common/evas_scale_sample.c
index 8b522807d7..f462da5f23 100644
--- a/src/lib/evas/common/evas_scale_sample.c
+++ b/src/lib/evas/common/evas_scale_sample.c
@@ -199,9 +199,9 @@ evas_common_scale_rgba_sample_draw(RGBA_Image *src, RGBA_Image *dst, int dst_cli
199 dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w); 199 dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w);
200 200
201 if (mul_col != 0xffffffff) 201 if (mul_col != 0xffffffff)
202 func = evas_common_gfx_func_composite_pixel_color_span_get(src, mul_col, dst, dst_clip_w, render_op); 202 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, mul_col, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
203 else 203 else
204 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, render_op); 204 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
205 205
206 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) 206 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h))
207 { 207 {
@@ -396,9 +396,9 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
396 dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w); 396 dst_ptr = dst_data + dst_clip_x + (dst_clip_y * dst_w);
397 397
398 if (dc->mul.use) 398 if (dc->mul.use)
399 func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op); 399 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dc->mul.col, dst->cache_entry.flags.alpha, dst_clip_w, dc->render_op);
400 else 400 else
401 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op); 401 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, dst_clip_w, dc->render_op);
402 402
403 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h)) 403 if ((dst_region_w == src_region_w) && (dst_region_h == src_region_h))
404 { 404 {
diff --git a/src/lib/evas/common/evas_scale_smooth_scaler_down.c b/src/lib/evas/common/evas_scale_smooth_scaler_down.c
index e113c0faf4..057e526205 100644
--- a/src/lib/evas/common/evas_scale_smooth_scaler_down.c
+++ b/src/lib/evas/common/evas_scale_smooth_scaler_down.c
@@ -19,9 +19,9 @@
19 buf = alloca(dst_clip_w * sizeof(DATA32)); 19 buf = alloca(dst_clip_w * sizeof(DATA32));
20 20
21 if (mul_col != 0xffffffff) 21 if (mul_col != 0xffffffff)
22 func = evas_common_gfx_func_composite_pixel_color_span_get(src, mul_col, dst, dst_clip_w, render_op); 22 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, mul_col, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
23 else 23 else
24 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, render_op); 24 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
25 /* scaling down vertically */ 25 /* scaling down vertically */
26 if ((dst_region_w >= src_region_w) && 26 if ((dst_region_w >= src_region_w) &&
27 (dst_region_h < src_region_h)) 27 (dst_region_h < src_region_h))
diff --git a/src/lib/evas/common/evas_scale_smooth_scaler_noscale.c b/src/lib/evas/common/evas_scale_smooth_scaler_noscale.c
index 83835bbc14..484575f283 100644
--- a/src/lib/evas/common/evas_scale_smooth_scaler_noscale.c
+++ b/src/lib/evas/common/evas_scale_smooth_scaler_noscale.c
@@ -4,9 +4,9 @@
4 4
5 ptr = src->image.data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x; 5 ptr = src->image.data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x;
6 if (mul_col != 0xffffffff) 6 if (mul_col != 0xffffffff)
7 func = evas_common_gfx_func_composite_pixel_color_span_get(src, mul_col, dst, dst_clip_w, render_op); 7 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, mul_col, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
8 else 8 else
9 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, render_op); 9 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
10 10
11 while (dst_clip_h--) 11 while (dst_clip_h--)
12 { 12 {
diff --git a/src/lib/evas/common/evas_scale_smooth_scaler_up.c b/src/lib/evas/common/evas_scale_smooth_scaler_up.c
index 4b21d598dd..3921d01ba7 100644
--- a/src/lib/evas/common/evas_scale_smooth_scaler_up.c
+++ b/src/lib/evas/common/evas_scale_smooth_scaler_up.c
@@ -34,9 +34,9 @@
34 { 34 {
35 buf = alloca(dst_clip_w * sizeof(DATA32)); 35 buf = alloca(dst_clip_w * sizeof(DATA32));
36 if (mul_col != 0xffffffff) 36 if (mul_col != 0xffffffff)
37 func = evas_common_gfx_func_composite_pixel_color_span_get(src, mul_col, dst, dst_clip_w, render_op); 37 func = evas_common_gfx_func_composite_pixel_color_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, mul_col, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
38 else 38 else
39 func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, render_op); 39 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, dst_clip_w, render_op);
40 } 40 }
41 else 41 else
42 buf = pdst; 42 buf = pdst;
diff --git a/src/lib/evas/filters/evas_filter_blend.c b/src/lib/evas/filters/evas_filter_blend.c
index 1e5260d6f8..4c90a92466 100644
--- a/src/lib/evas/filters/evas_filter_blend.c
+++ b/src/lib/evas/filters/evas_filter_blend.c
@@ -69,7 +69,7 @@ _image_draw_cpu_alpha2rgba(void *data EINA_UNUSED, void *context,
69 EINA_SAFETY_ON_FALSE_RETURN_VAL((src_w == dst_w) && (src_h == dst_h), EINA_FALSE); 69 EINA_SAFETY_ON_FALSE_RETURN_VAL((src_w == dst_w) && (src_h == dst_h), EINA_FALSE);
70 70
71 func = evas_common_gfx_func_composite_mask_color_span_get 71 func = evas_common_gfx_func_composite_mask_color_span_get
72 (dc->color, surface, 1, dc->render_op); 72 (dc->color, dst->cache_entry.flags.alpha, 1, dc->render_op);
73 EINA_SAFETY_ON_NULL_RETURN_VAL(func, EINA_FALSE); 73 EINA_SAFETY_ON_NULL_RETURN_VAL(func, EINA_FALSE);
74 74
75 sw = src->cache_entry.w; 75 sw = src->cache_entry.w;
@@ -208,7 +208,7 @@ _image_draw_cpu_rgba2rgba(void *data EINA_UNUSED, void *context,
208 208
209 EINA_SAFETY_ON_FALSE_RETURN_VAL((src_w == dst_w) && (src_h == dst_h), EINA_FALSE); 209 EINA_SAFETY_ON_FALSE_RETURN_VAL((src_w == dst_w) && (src_h == dst_h), EINA_FALSE);
210 210
211 func = evas_common_gfx_func_composite_pixel_span_get(image, surface, 1, dc->render_op); 211 func = evas_common_gfx_func_composite_pixel_span_get(src->cache_entry.flags.alpha, src->cache_entry.flags.alpha_sparse, dst->cache_entry.flags.alpha, 1, dc->render_op);
212 EINA_SAFETY_ON_NULL_RETURN_VAL(func, EINA_FALSE); 212 EINA_SAFETY_ON_NULL_RETURN_VAL(func, EINA_FALSE);
213 213
214 sw = src->cache_entry.w; 214 sw = src->cache_entry.w;
diff --git a/src/lib/evas/filters/evas_filter_mask.c b/src/lib/evas/filters/evas_filter_mask.c
index b12e381aa1..8c900d04a6 100644
--- a/src/lib/evas/filters/evas_filter_mask.c
+++ b/src/lib/evas/filters/evas_filter_mask.c
@@ -220,8 +220,8 @@ _mask_cpu_alpha_rgba_rgba(Evas_Filter_Command *cmd)
220 stepcount = w / stepsize; 220 stepcount = w / stepsize;
221 span = malloc(stepsize * sizeof(DATA32)); 221 span = malloc(stepsize * sizeof(DATA32));
222 222
223 func1 = evas_common_gfx_func_composite_pixel_mask_span_get(mask, out, 1, EVAS_RENDER_COPY); 223 func1 = evas_common_gfx_func_composite_pixel_mask_span_get(mask->cache_entry.flags.alpha, mask->cache_entry.flags.alpha_sparse, out->cache_entry.flags.alpha, 1, EVAS_RENDER_COPY);
224 func2 = evas_common_gfx_func_composite_pixel_color_span_get(mask, color2, out, 1, op); 224 func2 = evas_common_gfx_func_composite_pixel_color_span_get(mask->cache_entry.flags.alpha, mask->cache_entry.flags.alpha_sparse, color2, out->cache_entry.flags.alpha, 1, op);
225 225
226 // Apply mask using Gfx functions 226 // Apply mask using Gfx functions
227 for (y = 0, my = 0; y < h; y++, my++, msk += mw) 227 for (y = 0, my = 0; y < h; y++, my++, msk += mw)
@@ -313,7 +313,7 @@ _mask_cpu_alpha_alpha_rgba(Evas_Filter_Command *cmd)
313 stepcount = w / stepsize; 313 stepcount = w / stepsize;
314 span = malloc(stepsize * sizeof(DATA8)); 314 span = malloc(stepsize * sizeof(DATA8));
315 315
316 func = evas_common_gfx_func_composite_mask_color_span_get(color, out, 1, op); 316 func = evas_common_gfx_func_composite_mask_color_span_get(color, out->cache_entry.flags.alpha, 1, op);
317 span_func = evas_common_alpha_func_get(EVAS_RENDER_MASK); 317 span_func = evas_common_alpha_func_get(EVAS_RENDER_MASK);
318 318
319 for (y = 0, my = 0; y < h; y++, my++, msk += mw) 319 for (y = 0, my = 0; y < h; y++, my++, msk += mw)
diff --git a/src/lib/evas/include/evas_common_private.h b/src/lib/evas/include/evas_common_private.h
index b79cf43d2b..e9a25f474c 100644
--- a/src/lib/evas/include/evas_common_private.h
+++ b/src/lib/evas/include/evas_common_private.h
@@ -1011,17 +1011,17 @@ struct _RGBA_Gfx_Compositor
1011 void (*init)(void); 1011 void (*init)(void);
1012 void (*shutdown)(void); 1012 void (*shutdown)(void);
1013 1013
1014 RGBA_Gfx_Func (*composite_pixel_span_get)(RGBA_Image *src, RGBA_Image *dst, int pixels); 1014 RGBA_Gfx_Func (*composite_pixel_span_get)(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
1015 RGBA_Gfx_Func (*composite_color_span_get)(DATA32 col, RGBA_Image *dst, int pixels); 1015 RGBA_Gfx_Func (*composite_color_span_get)(DATA32 col, Eina_Bool dst_alpha, int pixels);
1016 RGBA_Gfx_Func (*composite_pixel_color_span_get)(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels); 1016 RGBA_Gfx_Func (*composite_pixel_color_span_get)(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, DATA32 col, Eina_Bool dst_alpha, int pixels);
1017 RGBA_Gfx_Func (*composite_mask_color_span_get)(DATA32 col, RGBA_Image *dst, int pixels); 1017 RGBA_Gfx_Func (*composite_mask_color_span_get)(DATA32 col, Eina_Bool dst_alpha, int pixels);
1018 RGBA_Gfx_Func (*composite_pixel_mask_span_get)(RGBA_Image *src, RGBA_Image *dst, int pixels); 1018 RGBA_Gfx_Func (*composite_pixel_mask_span_get)(Eina_Bool src_alpha, Eina_Bool src_sparse_alpha, Eina_Bool dst_alpha, int pixels);
1019 1019
1020 RGBA_Gfx_Pt_Func (*composite_pixel_pt_get)(Image_Entry_Flags src_flags, RGBA_Image *dst); 1020 RGBA_Gfx_Pt_Func (*composite_pixel_pt_get)(Eina_Bool src_alpha, Eina_Bool dst_alpha);
1021 RGBA_Gfx_Pt_Func (*composite_color_pt_get)(DATA32 col, RGBA_Image *dst); 1021 RGBA_Gfx_Pt_Func (*composite_color_pt_get)(DATA32 col, Eina_Bool dst_alpha);
1022 RGBA_Gfx_Pt_Func (*composite_pixel_color_pt_get)(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst); 1022 RGBA_Gfx_Pt_Func (*composite_pixel_color_pt_get)(Eina_Bool src_alpha, DATA32 col, Eina_Bool dst_alpha);
1023 RGBA_Gfx_Pt_Func (*composite_mask_color_pt_get)(DATA32 col, RGBA_Image *dst); 1023 RGBA_Gfx_Pt_Func (*composite_mask_color_pt_get)(DATA32 col, Eina_Bool dst_alpha);
1024 RGBA_Gfx_Pt_Func (*composite_pixel_mask_pt_get)(Image_Entry_Flags src_flags, RGBA_Image *dst); 1024 RGBA_Gfx_Pt_Func (*composite_pixel_mask_pt_get)(Eina_Bool src_alpha, Eina_Bool dst_alpha);
1025}; 1025};
1026 1026
1027#define EVAS_RECT_SPLIT 1 1027#define EVAS_RECT_SPLIT 1