2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
5 #include "evas_common.h"
7 static RGBA_Gfx_Func op_add_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST];
8 static RGBA_Gfx_Pt_Func op_add_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST];
10 static void op_add_init(void);
11 static void op_add_shutdown(void);
13 static RGBA_Gfx_Func op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels);
14 static RGBA_Gfx_Func op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels);
15 static RGBA_Gfx_Func op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels);
16 static RGBA_Gfx_Func op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels);
17 static RGBA_Gfx_Func op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels);
19 static RGBA_Gfx_Pt_Func op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst);
20 static RGBA_Gfx_Pt_Func op_add_color_pt_get(DATA32 col, RGBA_Image *dst);
21 static RGBA_Gfx_Pt_Func op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst);
22 static RGBA_Gfx_Pt_Func op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst);
23 static RGBA_Gfx_Pt_Func op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst);
25 static RGBA_Gfx_Compositor _composite_add = { "add",
26 op_add_init, op_add_shutdown,
27 op_add_pixel_span_get, op_add_color_span_get,
28 op_add_pixel_color_span_get, op_add_mask_color_span_get,
29 op_add_pixel_mask_span_get,
30 op_add_pixel_pt_get, op_add_color_pt_get,
31 op_add_pixel_color_pt_get, op_add_mask_color_pt_get,
32 op_add_pixel_mask_pt_get
36 evas_common_gfx_compositor_add_get(void)
38 return &(_composite_add);
41 static RGBA_Gfx_Func op_add_rel_span_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST];
42 static RGBA_Gfx_Pt_Func op_add_rel_pt_funcs[SP_LAST][SM_LAST][SC_LAST][DP_LAST][CPU_LAST];
44 static void op_add_rel_init(void);
45 static void op_add_rel_shutdown(void);
47 static RGBA_Gfx_Func op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels);
48 static RGBA_Gfx_Func op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels);
49 static RGBA_Gfx_Func op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels);
50 static RGBA_Gfx_Func op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels);
51 static RGBA_Gfx_Func op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels);
53 static RGBA_Gfx_Pt_Func op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst);
54 static RGBA_Gfx_Pt_Func op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst);
55 static RGBA_Gfx_Pt_Func op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst);
56 static RGBA_Gfx_Pt_Func op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst);
57 static RGBA_Gfx_Pt_Func op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst);
59 static RGBA_Gfx_Compositor _composite_add_rel = { "add_rel",
60 op_add_rel_init, op_add_rel_shutdown,
61 op_add_rel_pixel_span_get, op_add_rel_color_span_get,
62 op_add_rel_pixel_color_span_get, op_add_rel_mask_color_span_get,
63 op_add_rel_pixel_mask_span_get,
64 op_add_rel_pixel_pt_get, op_add_rel_color_pt_get,
65 op_add_rel_pixel_color_pt_get, op_add_rel_mask_color_pt_get,
66 op_add_rel_pixel_mask_pt_get
70 evas_common_gfx_compositor_add_rel_get(void)
72 return &(_composite_add_rel);
76 # include "./evas_op_add/op_add_pixel_.c"
77 # include "./evas_op_add/op_add_color_.c"
78 # include "./evas_op_add/op_add_pixel_color_.c"
79 # include "./evas_op_add/op_add_pixel_mask_.c"
80 # include "./evas_op_add/op_add_mask_color_.c"
81 //# include "./evas_op_add/op_add_pixel_mask_color_.c"
83 # include "./evas_op_add/op_add_pixel_i386.c"
84 # include "./evas_op_add/op_add_color_i386.c"
85 # include "./evas_op_add/op_add_pixel_color_i386.c"
86 # include "./evas_op_add/op_add_pixel_mask_i386.c"
87 # include "./evas_op_add/op_add_mask_color_i386.c"
88 //# include "op_add_pixel_mask_color_.c"
93 memset(op_add_span_funcs, 0, sizeof(op_add_span_funcs));
94 memset(op_add_pt_funcs, 0, sizeof(op_add_pt_funcs));
96 init_add_pixel_span_funcs_mmx();
97 init_add_pixel_color_span_funcs_mmx();
98 init_add_pixel_mask_span_funcs_mmx();
99 init_add_color_span_funcs_mmx();
100 init_add_mask_color_span_funcs_mmx();
102 init_add_pixel_pt_funcs_mmx();
103 init_add_pixel_color_pt_funcs_mmx();
104 init_add_pixel_mask_pt_funcs_mmx();
105 init_add_color_pt_funcs_mmx();
106 init_add_mask_color_pt_funcs_mmx();
109 init_add_pixel_span_funcs_c();
110 init_add_pixel_color_span_funcs_c();
111 init_add_rel_pixel_mask_span_funcs_c();
112 init_add_color_span_funcs_c();
113 init_add_mask_color_span_funcs_c();
115 init_add_pixel_pt_funcs_c();
116 init_add_pixel_color_pt_funcs_c();
117 init_add_rel_pixel_mask_pt_funcs_c();
118 init_add_color_pt_funcs_c();
119 init_add_mask_color_pt_funcs_c();
124 op_add_shutdown(void)
129 add_gfx_span_func_cpu(int s, int m, int c, int d)
131 RGBA_Gfx_Func func = NULL;
134 if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
137 func = op_add_span_funcs[s][m][c][d][cpu];
138 if (func) return func;
143 func = op_add_span_funcs[s][m][c][d][cpu];
144 if (func) return func;
150 op_add_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
152 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
154 if (src && src->cache_entry.flags.alpha)
156 if (dst && dst->cache_entry.flags.alpha)
158 return add_gfx_span_func_cpu(s, m, c, d);
162 op_add_color_span_get(DATA32 col, RGBA_Image *dst, int pixels)
164 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
166 if ((col >> 24) < 255)
168 if (col == (col | 0x00ffffff))
170 if (col == 0xffffffff)
172 if (dst && dst->cache_entry.flags.alpha)
174 return add_gfx_span_func_cpu(s, m, c, d);
178 op_add_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels)
180 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
182 if (src && src->cache_entry.flags.alpha)
184 if ((col >> 24) < 255)
186 if (col == (col | 0x00ffffff))
188 if (col == 0xffffffff)
190 if (dst && dst->cache_entry.flags.alpha)
192 return add_gfx_span_func_cpu(s, m, c, d);
196 op_add_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels)
198 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
200 if ((col >> 24) < 255)
202 if (col == (col | 0x00ffffff))
204 if (col == 0xffffffff)
206 if (dst && dst->cache_entry.flags.alpha)
208 return add_gfx_span_func_cpu(s, m, c, d);
212 op_add_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
214 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
216 if (src && src->cache_entry.flags.alpha)
218 if (dst && dst->cache_entry.flags.alpha)
220 return add_gfx_span_func_cpu(s, m, c, d);
223 static RGBA_Gfx_Pt_Func
224 add_gfx_pt_func_cpu(int s, int m, int c, int d)
226 RGBA_Gfx_Pt_Func func = NULL;
229 if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
232 func = op_add_pt_funcs[s][m][c][d][cpu];
233 if (func) return func;
238 func = op_add_pt_funcs[s][m][c][d][cpu];
239 if (func) return func;
244 static RGBA_Gfx_Pt_Func
245 op_add_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst)
247 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
251 if (dst && dst->cache_entry.flags.alpha)
253 return add_gfx_pt_func_cpu(s, m, c, d);
256 static RGBA_Gfx_Pt_Func
257 op_add_color_pt_get(DATA32 col, RGBA_Image *dst)
259 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
261 if ((col >> 24) < 255)
263 if (col == (col | 0x00ffffff))
265 if (col == 0xffffffff)
267 if (dst && dst->cache_entry.flags.alpha)
269 return add_gfx_pt_func_cpu(s, m, c, d);
272 static RGBA_Gfx_Pt_Func
273 op_add_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst)
275 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
279 if ((col >> 24) < 255)
281 if (col == (col | 0x00ffffff))
283 if (col == 0xffffffff)
285 if (dst && dst->cache_entry.flags.alpha)
287 return add_gfx_pt_func_cpu(s, m, c, d);
290 static RGBA_Gfx_Pt_Func
291 op_add_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
293 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
295 if ((col >> 24) < 255)
297 if (col == (col | 0x00ffffff))
299 if (col == 0xffffffff)
301 if (dst && dst->cache_entry.flags.alpha)
303 return add_gfx_pt_func_cpu(s, m, c, d);
306 static RGBA_Gfx_Pt_Func
307 op_add_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst)
309 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
313 if (dst && dst->cache_entry.flags.alpha)
315 return add_gfx_pt_func_cpu(s, m, c, d);
321 op_add_rel_init(void)
323 memset(op_add_rel_span_funcs, 0, sizeof(op_add_rel_span_funcs));
324 memset(op_add_rel_pt_funcs, 0, sizeof(op_add_rel_pt_funcs));
326 init_add_rel_pixel_span_funcs_mmx();
327 init_add_rel_pixel_color_span_funcs_mmx();
328 init_add_rel_pixel_mask_span_funcs_mmx();
329 init_add_rel_color_span_funcs_mmx();
330 init_add_rel_mask_color_span_funcs_mmx();
332 init_add_rel_pixel_pt_funcs_mmx();
333 init_add_rel_pixel_color_pt_funcs_mmx();
334 init_add_rel_pixel_mask_pt_funcs_mmx();
335 init_add_rel_color_pt_funcs_mmx();
336 init_add_rel_mask_color_pt_funcs_mmx();
339 init_add_rel_pixel_span_funcs_c();
340 init_add_rel_pixel_color_span_funcs_c();
341 init_add_rel_pixel_mask_span_funcs_c();
342 init_add_rel_color_span_funcs_c();
343 init_add_rel_mask_color_span_funcs_c();
345 init_add_rel_pixel_pt_funcs_c();
346 init_add_rel_pixel_color_pt_funcs_c();
347 init_add_rel_pixel_mask_pt_funcs_c();
348 init_add_rel_color_pt_funcs_c();
349 init_add_rel_mask_color_pt_funcs_c();
354 op_add_rel_shutdown(void)
359 add_rel_gfx_span_func_cpu(int s, int m, int c, int d)
361 RGBA_Gfx_Func func = NULL;
364 if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
367 func = op_add_rel_span_funcs[s][m][c][d][cpu];
368 if (func) return func;
373 func = op_add_rel_span_funcs[s][m][c][d][cpu];
374 if (func) return func;
380 op_add_rel_pixel_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
382 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
384 if (src && src->cache_entry.flags.alpha)
386 if (dst && dst->cache_entry.flags.alpha)
388 return add_rel_gfx_span_func_cpu(s, m, c, d);
392 op_add_rel_color_span_get(DATA32 col, RGBA_Image *dst, int pixels)
394 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
396 if ((col >> 24) < 255)
398 if (col == (col | 0x00ffffff))
400 if (col == 0xffffffff)
402 if (dst && dst->cache_entry.flags.alpha)
404 return add_rel_gfx_span_func_cpu(s, m, c, d);
408 op_add_rel_pixel_color_span_get(RGBA_Image *src, DATA32 col, RGBA_Image *dst, int pixels)
410 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
412 if (src && src->cache_entry.flags.alpha)
414 if ((col >> 24) < 255)
416 if (col == (col | 0x00ffffff))
418 if (col == 0xffffffff)
420 if (dst && dst->cache_entry.flags.alpha)
422 return add_rel_gfx_span_func_cpu(s, m, c, d);
426 op_add_rel_mask_color_span_get(DATA32 col, RGBA_Image *dst, int pixels)
428 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
430 if ((col >> 24) < 255)
432 if (col == (col | 0x00ffffff))
434 if (col == 0xffffffff)
436 if (dst && dst->cache_entry.flags.alpha)
438 return add_rel_gfx_span_func_cpu(s, m, c, d);
442 op_add_rel_pixel_mask_span_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
444 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
446 if (src && src->cache_entry.flags.alpha)
448 if (dst && dst->cache_entry.flags.alpha)
450 return add_rel_gfx_span_func_cpu(s, m, c, d);
453 static RGBA_Gfx_Pt_Func
454 add_rel_gfx_pt_func_cpu(int s, int m, int c, int d)
456 RGBA_Gfx_Pt_Func func = NULL;
459 if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
462 func = op_add_rel_pt_funcs[s][m][c][d][cpu];
463 if (func) return func;
468 func = op_add_rel_pt_funcs[s][m][c][d][cpu];
469 if (func) return func;
474 static RGBA_Gfx_Pt_Func
475 op_add_rel_pixel_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst)
477 int s = SP_AN, m = SM_N, c = SC_N, d = DP_AN;
481 if (dst && dst->cache_entry.flags.alpha)
483 return add_rel_gfx_pt_func_cpu(s, m, c, d);
486 static RGBA_Gfx_Pt_Func
487 op_add_rel_color_pt_get(DATA32 col, RGBA_Image *dst)
489 int s = SP_N, m = SM_N, c = SC_AN, d = DP_AN;
491 if ((col >> 24) < 255)
493 if (col == (col | 0x00ffffff))
495 if (col == 0xffffffff)
497 if (dst && dst->cache_entry.flags.alpha)
499 return add_rel_gfx_pt_func_cpu(s, m, c, d);
502 static RGBA_Gfx_Pt_Func
503 op_add_rel_pixel_color_pt_get(Image_Entry_Flags src_flags, DATA32 col, RGBA_Image *dst)
505 int s = SP_AN, m = SM_N, c = SC_AN, d = DP_AN;
509 if ((col >> 24) < 255)
511 if (col == (col | 0x00ffffff))
513 if (col == 0xffffffff)
515 if (dst && dst->cache_entry.flags.alpha)
517 return add_rel_gfx_pt_func_cpu(s, m, c, d);
520 static RGBA_Gfx_Pt_Func
521 op_add_rel_mask_color_pt_get(DATA32 col, RGBA_Image *dst)
523 int s = SP_N, m = SM_AS, c = SC_AN, d = DP_AN;
525 if ((col >> 24) < 255)
527 if (col == (col | 0x00ffffff))
529 if (col == 0xffffffff)
531 if (dst && dst->cache_entry.flags.alpha)
533 return add_rel_gfx_pt_func_cpu(s, m, c, d);
536 static RGBA_Gfx_Pt_Func
537 op_add_rel_pixel_mask_pt_get(Image_Entry_Flags src_flags, RGBA_Image *dst)
539 int s = SP_AN, m = SM_AS, c = SC_N, d = DP_AN;
543 if (dst && dst->cache_entry.flags.alpha)
545 return add_rel_gfx_pt_func_cpu(s, m, c, d);