aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c
new file mode 100644
index 0000000..2e034b9
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c
@@ -0,0 +1,56 @@
1/* mul pixel --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_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 = MUL4_SYM(*s, *d);
9 }
10}
11
12#define _op_mul_pas_dp _op_mul_p_dp
13#define _op_mul_pan_dp _op_mul_p_dp
14
15#define _op_mul_p_dpan _op_mul_p_dp
16#define _op_mul_pas_dpan _op_mul_pas_dp
17#define _op_mul_pan_dpan _op_mul_pan_dp
18
19static void
20init_mul_pixel_span_funcs_c(void)
21{
22 op_mul_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_p_dp;
23 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pas_dp;
24 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pan_dp;
25
26 op_mul_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_p_dpan;
27 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pas_dpan;
28 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pan_dpan;
29}
30#endif
31
32#ifdef BUILD_C
33static void
34_op_mul_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
35 *d = MUL4_SYM(s, *d);
36}
37
38#define _op_mul_pt_pas_dp _op_mul_pt_p_dp
39#define _op_mul_pt_pan_dp _op_mul_pt_p_dp
40
41#define _op_mul_pt_p_dpan _op_mul_pt_p_dp
42#define _op_mul_pt_pan_dpan _op_mul_pt_pan_dp
43#define _op_mul_pt_pas_dpan _op_mul_pt_pas_dp
44
45static void
46init_mul_pixel_pt_funcs_c(void)
47{
48 op_mul_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_p_dp;
49 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pas_dp;
50 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pan_dp;
51
52 op_mul_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_p_dpan;
53 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pas_dpan;
54 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pan_dpan;
55}
56#endif