aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-04 18:41:13 +1000
committerDavid Walter Seikel2012-01-04 18:41:13 +1000
commitdd7595a3475407a7fa96a97393bae8c5220e8762 (patch)
treee341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c
parentAdd the skeleton. (diff)
downloadSledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz
Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje.
Note that embryo wont be used, but I'm not sure yet if you can build edje without it.
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c170
1 files changed, 170 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c
new file mode 100644
index 0000000..c03a843
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_.c
@@ -0,0 +1,170 @@
1/* copy mask x color -> dst */
2
3#ifdef BUILD_C
4static void
5_op_copy_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e;
7 int color;
8 UNROLL8_PLD_WHILE(d, l, e,
9 {
10 color = *m;
11 switch(color)
12 {
13 case 0:
14 break;
15 case 255:
16 *d = c;
17 break;
18 default:
19 color++;
20 *d = INTERP_256(color, c, *d);
21 break;
22 }
23 m++; d++;
24 });
25}
26
27#define _op_copy_mas_cn_dp _op_copy_mas_c_dp
28#define _op_copy_mas_can_dp _op_copy_mas_c_dp
29#define _op_copy_mas_caa_dp _op_copy_mas_c_dp
30
31#define _op_copy_mas_c_dpan _op_copy_mas_c_dp
32#define _op_copy_mas_cn_dpan _op_copy_mas_c_dpan
33#define _op_copy_mas_can_dpan _op_copy_mas_c_dpan
34#define _op_copy_mas_caa_dpan _op_copy_mas_c_dpan
35
36static void
37init_copy_mask_color_span_funcs_c(void)
38{
39 op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_mas_cn_dp;
40 op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_mas_c_dp;
41 op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_mas_can_dp;
42 op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_mas_caa_dp;
43
44 op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_mas_cn_dpan;
45 op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_mas_c_dpan;
46 op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_mas_can_dpan;
47 op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_mas_caa_dpan;
48}
49#endif
50
51#ifdef BUILD_C
52static void
53_op_copy_pt_mas_c_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) {
54 *d = INTERP_256(m + 1, c, *d);
55}
56
57
58#define _op_copy_pt_mas_cn_dp _op_copy_pt_mas_c_dp
59#define _op_copy_pt_mas_can_dp _op_copy_pt_mas_c_dp
60#define _op_copy_pt_mas_caa_dp _op_copy_pt_mas_c_dp
61
62#define _op_copy_pt_mas_c_dpan _op_copy_pt_mas_c_dp
63#define _op_copy_pt_mas_cn_dpan _op_copy_pt_mas_c_dpan
64#define _op_copy_pt_mas_can_dpan _op_copy_pt_mas_c_dpan
65#define _op_copy_pt_mas_caa_dpan _op_copy_pt_mas_c_dpan
66
67static void
68init_copy_mask_color_pt_funcs_c(void)
69{
70 op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_pt_mas_cn_dp;
71 op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_pt_mas_c_dp;
72 op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_pt_mas_can_dp;
73 op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_pt_mas_caa_dp;
74
75 op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_pt_mas_cn_dpan;
76 op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_pt_mas_c_dpan;
77 op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_pt_mas_can_dpan;
78 op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_pt_mas_caa_dpan;
79}
80#endif
81
82/*-----*/
83
84/* copy_rel mask x color -> dst */
85
86#ifdef BUILD_C
87static void
88_op_copy_rel_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
89 DATA32 *e;
90 int color;
91 UNROLL8_PLD_WHILE(d, l, e,
92 {
93 color = *m;
94 switch(color)
95 {
96 case 0:
97 break;
98 case 255:
99 color = 1 + (*d >> 24);
100 *d = MUL_256(color, c);
101 break;
102 default:
103 {
104 DATA32 da = 1 + (*d >> 24);
105 da = MUL_256(da, c);
106 color++;
107 *d = INTERP_256(color, da, *d);
108 }
109 break;
110 }
111 m++; d++;
112 });
113}
114
115
116#define _op_copy_rel_mas_cn_dp _op_copy_rel_mas_c_dp
117#define _op_copy_rel_mas_can_dp _op_copy_rel_mas_c_dp
118#define _op_copy_rel_mas_caa_dp _op_copy_rel_mas_c_dp
119
120#define _op_copy_rel_mas_c_dpan _op_copy_mas_c_dpan
121#define _op_copy_rel_mas_cn_dpan _op_copy_mas_cn_dpan
122#define _op_copy_rel_mas_can_dpan _op_copy_mas_can_dpan
123#define _op_copy_rel_mas_caa_dpan _op_copy_mas_caa_dpan
124
125static void
126init_copy_rel_mask_color_span_funcs_c(void)
127{
128 op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_mas_cn_dp;
129 op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_rel_mas_c_dp;
130 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_rel_mas_can_dp;
131 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_rel_mas_caa_dp;
132
133 op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_mas_cn_dpan;
134 op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_rel_mas_c_dpan;
135 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_rel_mas_can_dpan;
136 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_rel_mas_caa_dpan;
137}
138#endif
139
140#ifdef BUILD_C
141static void
142_op_copy_rel_pt_mas_c_dp(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
143 s = 1 + (*d >> 24);
144 s = MUL_256(s, c);
145 *d = INTERP_256(m + 1, s, *d);
146}
147
148#define _op_copy_rel_pt_mas_cn_dp _op_copy_rel_pt_mas_c_dp
149#define _op_copy_rel_pt_mas_can_dp _op_copy_rel_pt_mas_c_dp
150#define _op_copy_rel_pt_mas_caa_dp _op_copy_rel_pt_mas_c_dp
151
152#define _op_copy_rel_pt_mas_c_dpan _op_copy_pt_mas_c_dpan
153#define _op_copy_rel_pt_mas_cn_dpan _op_copy_pt_mas_cn_dpan
154#define _op_copy_rel_pt_mas_can_dpan _op_copy_pt_mas_can_dpan
155#define _op_copy_rel_pt_mas_caa_dpan _op_copy_pt_mas_caa_dpan
156
157static void
158init_copy_rel_mask_color_pt_funcs_c(void)
159{
160 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_C] = _op_copy_rel_pt_mas_cn_dp;
161 op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_copy_rel_pt_mas_c_dp;
162 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_copy_rel_pt_mas_can_dp;
163 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_copy_rel_pt_mas_caa_dp;
164
165 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_mas_cn_dpan;
166 op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_copy_rel_pt_mas_c_dpan;
167 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_mas_can_dpan;
168 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_mas_caa_dpan;
169}
170#endif