aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c138
1 files changed, 138 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c
new file mode 100644
index 0000000..0178358
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_color_.c
@@ -0,0 +1,138 @@
1/* copy color --> dst */
2
3#ifdef BUILD_C
4static void
5_op_copy_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e;
7 UNROLL8_PLD_WHILE(d, l, e,
8 {
9 *d = c;
10 d++;
11 });
12}
13
14#define _op_copy_cn_dp _op_copy_c_dp
15#define _op_copy_can_dp _op_copy_c_dp
16#define _op_copy_caa_dp _op_copy_c_dp
17
18#define _op_copy_c_dpan _op_copy_c_dp
19#define _op_copy_cn_dpan _op_copy_c_dp
20#define _op_copy_can_dpan _op_copy_c_dp
21#define _op_copy_caa_dpan _op_copy_c_dp
22
23static void
24init_copy_color_span_funcs_c(void)
25{
26 op_copy_span_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_cn_dp;
27 op_copy_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_c_dp;
28 op_copy_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_can_dp;
29 op_copy_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_caa_dp;
30
31 op_copy_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_cn_dpan;
32 op_copy_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_c_dpan;
33 op_copy_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_can_dpan;
34 op_copy_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_caa_dpan;
35}
36#endif
37
38#ifdef BUILD_C
39static void
40_op_copy_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
41 *d = c;
42}
43
44#define _op_copy_pt_cn_dp _op_copy_pt_c_dp
45#define _op_copy_pt_can_dp _op_copy_pt_c_dp
46#define _op_copy_pt_caa_dp _op_copy_pt_c_dp
47
48#define _op_copy_pt_c_dpan _op_copy_pt_c_dp
49#define _op_copy_pt_cn_dpan _op_copy_pt_c_dp
50#define _op_copy_pt_can_dpan _op_copy_pt_c_dp
51#define _op_copy_pt_caa_dpan _op_copy_pt_c_dp
52
53static void
54init_copy_color_pt_funcs_c(void)
55{
56 op_copy_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_pt_cn_dp;
57 op_copy_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_pt_c_dp;
58 op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_pt_can_dp;
59 op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_pt_caa_dp;
60
61 op_copy_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_pt_cn_dpan;
62 op_copy_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_pt_c_dpan;
63 op_copy_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_pt_can_dpan;
64 op_copy_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_pt_caa_dpan;
65}
66#endif
67
68/*-----*/
69
70/* copy_rel color --> dst */
71
72#ifdef BUILD_C
73static void
74_op_copy_rel_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
75 DATA32 *e;
76 UNROLL8_PLD_WHILE(d, l, e,
77 {
78 *d = MUL_SYM(*d >> 24, c);
79 d++;
80 });
81}
82
83
84#define _op_copy_rel_cn_dp _op_copy_rel_c_dp
85#define _op_copy_rel_can_dp _op_copy_rel_c_dp
86#define _op_copy_rel_caa_dp _op_copy_rel_c_dp
87
88#define _op_copy_rel_c_dpan _op_copy_c_dp
89#define _op_copy_rel_cn_dpan _op_copy_cn_dp
90#define _op_copy_rel_can_dpan _op_copy_can_dp
91#define _op_copy_rel_caa_dpan _op_copy_caa_dp
92
93static void
94init_copy_rel_color_span_funcs_c(void)
95{
96 op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_cn_dp;
97 op_copy_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_rel_c_dp;
98 op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_can_dp;
99 op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_caa_dp;
100
101 op_copy_rel_span_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_cn_dpan;
102 op_copy_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_c_dpan;
103 op_copy_rel_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_can_dpan;
104 op_copy_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_caa_dpan;
105}
106#endif
107
108#ifdef BUILD_C
109static void
110_op_copy_rel_pt_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
111 s = 1 + (*d >> 24);
112 *d = MUL_256(s, c);
113}
114
115
116#define _op_copy_rel_pt_cn_dp _op_copy_rel_pt_c_dp
117#define _op_copy_rel_pt_can_dp _op_copy_rel_pt_c_dp
118#define _op_copy_rel_pt_caa_dp _op_copy_rel_pt_c_dp
119
120#define _op_copy_rel_pt_c_dpan _op_copy_pt_c_dp
121#define _op_copy_rel_pt_cn_dpan _op_copy_pt_cn_dp
122#define _op_copy_rel_pt_can_dpan _op_copy_pt_can_dp
123#define _op_copy_rel_pt_caa_dpan _op_copy_pt_caa_dp
124
125static void
126init_copy_rel_color_pt_funcs_c(void)
127{
128 op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP][CPU_C] = _op_copy_rel_pt_cn_dp;
129 op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_copy_rel_pt_c_dp;
130 op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_copy_rel_pt_can_dp;
131 op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_copy_rel_pt_caa_dp;
132
133 op_copy_rel_pt_funcs[SP_N][SM_N][SC_N][DP_AN][CPU_C] = _op_copy_rel_pt_cn_dpan;
134 op_copy_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_copy_rel_pt_c_dpan;
135 op_copy_rel_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_copy_rel_pt_can_dpan;
136 op_copy_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_copy_rel_pt_caa_dpan;
137}
138#endif