aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c
new file mode 100644
index 0000000..c95b125
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_color_.c
@@ -0,0 +1,49 @@
1/* mask color --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mask_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 c = 1 + (c >> 24);
8 for (; d < e; d++) {
9 *d = MUL_256(c, *d);
10 }
11}
12
13#define _op_mask_caa_dp _op_mask_c_dp
14
15#define _op_mask_c_dpan _op_mask_c_dp
16#define _op_mask_caa_dpan _op_mask_caa_dp
17
18static void
19init_mask_color_span_funcs_c(void)
20{
21 op_mask_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mask_c_dp;
22 op_mask_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mask_caa_dp;
23
24 op_mask_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mask_c_dpan;
25 op_mask_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_caa_dpan;
26}
27#endif
28
29#ifdef BUILD_C
30static void
31_op_mask_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
32 *d = MUL_SYM(c >> 24, *d);
33}
34
35#define _op_mask_pt_caa_dp _op_mask_pt_c_dp
36
37#define _op_mask_pt_c_dpan _op_mask_pt_c_dp
38#define _op_mask_pt_caa_dpan _op_mask_pt_caa_dp
39
40static void
41init_mask_color_pt_funcs_c(void)
42{
43 op_mask_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mask_pt_c_dp;
44 op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mask_pt_caa_dp;
45
46 op_mask_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mask_pt_c_dpan;
47 op_mask_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mask_pt_caa_dpan;
48}
49#endif