aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c117
1 files changed, 117 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c
new file mode 100644
index 0000000..45d59d0
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_pixel_.c
@@ -0,0 +1,117 @@
1/* copy pixel --> dst */
2
3#ifdef BUILD_C
4static void
5_op_copy_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
6 memcpy(d, s, l * sizeof(DATA32));
7}
8
9#define _op_copy_pan_dp _op_copy_p_dp
10#define _op_copy_pas_dp _op_copy_p_dp
11
12#define _op_copy_p_dpan _op_copy_p_dp
13#define _op_copy_pan_dpan _op_copy_pan_dp
14#define _op_copy_pas_dpan _op_copy_pas_dp
15
16static void
17init_copy_pixel_span_funcs_c(void)
18{
19 op_copy_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_p_dp;
20 op_copy_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_pan_dp;
21 op_copy_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_pas_dp;
22
23 op_copy_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_p_dpan;
24 op_copy_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pan_dpan;
25 op_copy_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pas_dpan;
26}
27#endif
28
29#ifdef BUILD_C
30static void
31_op_copy_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
32 *d = s;
33}
34
35#define _op_copy_pt_pan_dp _op_copy_pt_p_dp
36#define _op_copy_pt_pas_dp _op_copy_pt_p_dp
37
38#define _op_copy_pt_p_dpan _op_copy_pt_p_dp
39#define _op_copy_pt_pan_dpan _op_copy_pt_pan_dp
40#define _op_copy_pt_pas_dpan _op_copy_pt_pas_dp
41
42static void
43init_copy_pixel_pt_funcs_c(void)
44{
45 op_copy_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_p_dp;
46 op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_pan_dp;
47 op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_pas_dp;
48
49 op_copy_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_p_dpan;
50 op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_pan_dpan;
51 op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_pas_dpan;
52}
53#endif
54
55/*-----*/
56
57/* copy_rel pixel --> dst */
58
59#ifdef BUILD_C
60static void
61_op_copy_rel_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
62 DATA32 *e;
63 UNROLL8_PLD_WHILE(d, l, e,
64 {
65 *d = MUL_SYM(*d >> 24, *s);
66 d++; s++;
67 });
68}
69
70
71#define _op_copy_rel_pas_dp _op_copy_rel_p_dp
72#define _op_copy_rel_pan_dp _op_copy_rel_p_dp
73
74#define _op_copy_rel_p_dpan _op_copy_p_dpan
75#define _op_copy_rel_pan_dpan _op_copy_pan_dpan
76#define _op_copy_rel_pas_dpan _op_copy_pas_dpan
77
78static void
79init_copy_rel_pixel_span_funcs_c(void)
80{
81 op_copy_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_p_dp;
82 op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pan_dp;
83 op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pas_dp;
84
85 op_copy_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_p_dpan;
86 op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pan_dpan;
87 op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pas_dpan;
88}
89#endif
90
91#ifdef BUILD_C
92static void
93_op_copy_rel_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
94 c = 1 + (*d >> 24);
95 *d = MUL_256(c, s);
96}
97
98
99#define _op_copy_rel_pt_pan_dp _op_copy_rel_pt_p_dp
100#define _op_copy_rel_pt_pas_dp _op_copy_rel_pt_p_dp
101
102#define _op_copy_rel_pt_p_dpan _op_copy_pt_p_dpan
103#define _op_copy_rel_pt_pan_dpan _op_copy_pt_pan_dpan
104#define _op_copy_rel_pt_pas_dpan _op_copy_pt_pas_dpan
105
106static void
107init_copy_rel_pixel_pt_funcs_c(void)
108{
109 op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_p_dp;
110 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_pan_dp;
111 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_pas_dp;
112
113 op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_p_dpan;
114 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pan_dpan;
115 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_pas_dpan;
116}
117#endif