aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c
new file mode 100644
index 0000000..ea7982b
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mask/op_mask_pixel_.c
@@ -0,0 +1,48 @@
1/* mask pixel --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mask_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 for (; d < e; d++, s++) {
8 *d = MUL_SYM(*s >> 24, *d);
9 }
10}
11
12#define _op_mask_pas_dp _op_mask_p_dp
13
14#define _op_mask_p_dpan _op_mask_p_dp
15#define _op_mask_pas_dpan _op_mask_pas_dp
16
17static void
18init_mask_pixel_span_funcs_c(void)
19{
20 op_mask_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mask_p_dp;
21 op_mask_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mask_pas_dp;
22
23 op_mask_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_p_dpan;
24 op_mask_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pas_dpan;
25}
26#endif
27
28#ifdef BUILD_C
29static void
30_op_mask_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
31 *d = MUL_SYM(s >> 24, *d);
32}
33
34#define _op_mask_pt_pas_dp _op_mask_pt_p_dp
35
36#define _op_mask_pt_p_dpan _op_mask_pt_p_dp
37#define _op_mask_pt_pas_dpan _op_mask_pt_pas_dp
38
39static void
40init_mask_pixel_pt_funcs_c(void)
41{
42 op_mask_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mask_pt_p_dp;
43 op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mask_pt_pas_dp;
44
45 op_mask_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pt_p_dpan;
46 op_mask_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mask_pt_pas_dpan;
47}
48#endif