|
1 /* |
|
2 * LIBOIL - Library of Optimized Inner Loops |
|
3 * Copyright (c) 2003,2004 David A. Schleef <ds@schleef.org> |
|
4 * All rights reserved. |
|
5 * |
|
6 * Redistribution and use in source and binary forms, with or without |
|
7 * modification, are permitted provided that the following conditions |
|
8 * are met: |
|
9 * 1. Redistributions of source code must retain the above copyright |
|
10 * notice, this list of conditions and the following disclaimer. |
|
11 * 2. Redistributions in binary form must reproduce the above copyright |
|
12 * notice, this list of conditions and the following disclaimer in the |
|
13 * documentation and/or other materials provided with the distribution. |
|
14 * |
|
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
|
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, |
|
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
|
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
|
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
|
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
25 * POSSIBILITY OF SUCH DAMAGE. |
|
26 */ |
|
27 //Portions Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
28 |
|
29 #ifdef HAVE_CONFIG_H |
|
30 #include "config.h" |
|
31 #endif |
|
32 |
|
33 #include <liboil.h> |
|
34 #include <liboilfunction.h> |
|
35 #include <liboilrandom.h> |
|
36 #include "liboil/liboilcolorspace.h" |
|
37 #include <liboiltest.h> |
|
38 #include <liboildebug.h> |
|
39 |
|
40 #ifdef __SYMBIAN32__ |
|
41 #ifdef __ARMCC__ |
|
42 #pragma diag_remark 186 |
|
43 #endif//__ARMCC__ |
|
44 #endif//__SYMBIAN32__ |
|
45 |
|
46 #define COMPOSITE_OVER(d,s,m) ((d) + (s) - oil_muldiv_255((d),(m))) |
|
47 #define COMPOSITE_ADD(d,s) oil_clamp_255((d) + (s)) |
|
48 #define COMPOSITE_IN(s,m) oil_muldiv_255((s),(m)) |
|
49 |
|
50 /** |
|
51 * SECTION:liboilfuncs-pixel |
|
52 * @title: Pixel Operations |
|
53 * @short_description: Operations on pixels |
|
54 * |
|
55 * Pixels are 4-element arrays of type uint8_t. The elements, in |
|
56 * memory order, represent the alpha, red, green, and blue |
|
57 * components respectively. The color components are premultiplied |
|
58 * with the alpha component. Liboil functions represent pixels |
|
59 * as the type uint32_t. |
|
60 * |
|
61 * The compositing operators IN, OVER, and ADD are defined the same |
|
62 * as cairo. |
|
63 * |
|
64 */ |
|
65 static void |
|
66 handle_param (OilParameter *p) |
|
67 { |
|
68 int n; |
|
69 |
|
70 if (p->src_data) { |
|
71 if (p->type == OIL_TYPE_u32p) { |
|
72 uint32_t *ptr; |
|
73 ptr = (uint32_t *)oil_param_get_source_data (p); |
|
74 n = p->post_n; |
|
75 oil_random_argb (ptr, n); |
|
76 } |
|
77 if (p->type == OIL_TYPE_u8p) { |
|
78 uint8_t *ptr; |
|
79 ptr = (uint8_t *)oil_param_get_source_data (p); |
|
80 n = p->post_n; |
|
81 oil_random_alpha (ptr, n); |
|
82 } |
|
83 } |
|
84 } |
|
85 |
|
86 static void |
|
87 composite_test (OilTest *test) |
|
88 { |
|
89 handle_param(&test->params[OIL_ARG_SRC1]); |
|
90 handle_param(&test->params[OIL_ARG_SRC2]); |
|
91 handle_param(&test->params[OIL_ARG_INPLACE1]); |
|
92 } |
|
93 |
|
94 /** |
|
95 * oil_composite_in_argb: |
|
96 * @d_n: DEST |
|
97 * @s1_n: SRC |
|
98 * @s2_n: MASK |
|
99 * @n: number of elements |
|
100 * |
|
101 * Performs the compositing operation DEST = SRC IN MASK. |
|
102 */ |
|
103 OIL_DEFINE_CLASS_FULL (composite_in_argb, |
|
104 "uint32_t *d_n, uint32_t *s1_n, uint8_t *s2_n, int n", |
|
105 composite_test); |
|
106 /** |
|
107 * oil_composite_in_argb_const_src: |
|
108 * @d_n: DEST |
|
109 * @s1_1: SRC |
|
110 * @s2_n: MASK |
|
111 * @n: number of elements |
|
112 * |
|
113 * Performs the compositing operation DEST = SRC IN MASK, for a constant |
|
114 * SRC. |
|
115 */ |
|
116 OIL_DEFINE_CLASS_FULL (composite_in_argb_const_src, |
|
117 "uint32_t *d_n, uint32_t *s1_1, uint8_t *s2_n, int n", |
|
118 composite_test); |
|
119 /** |
|
120 * oil_composite_in_argb_const_mask: |
|
121 * @d_n: DEST |
|
122 * @s1_n: SRC |
|
123 * @s2_1: MASK |
|
124 * @n: number of elements |
|
125 * |
|
126 * Performs the compositing operation DEST = SRC IN MASK, for a constant |
|
127 * MASK. |
|
128 */ |
|
129 OIL_DEFINE_CLASS_FULL (composite_in_argb_const_mask, |
|
130 "uint32_t *d_n, uint32_t *s1_n, uint8_t *s2_1, int n", |
|
131 composite_test); |
|
132 /** |
|
133 * oil_composite_over_argb: |
|
134 * @i_n: DEST |
|
135 * @s1_n: SRC |
|
136 * @n: number of elements |
|
137 * |
|
138 * Performs the compositing operation DEST = SRC OVER DEST. |
|
139 */ |
|
140 OIL_DEFINE_CLASS_FULL (composite_over_argb, |
|
141 "uint32_t *i_n, uint32_t *s1_n, int n", |
|
142 composite_test); |
|
143 /** |
|
144 * oil_composite_over_argb_const_src: |
|
145 * @i_n: DEST |
|
146 * @s1_1: SRC |
|
147 * @n: number of elements |
|
148 * |
|
149 * Performs the compositing operation DEST = SRC OVER DEST, for a |
|
150 * constant SRC. |
|
151 */ |
|
152 OIL_DEFINE_CLASS_FULL (composite_over_argb_const_src, |
|
153 "uint32_t *i_n, uint32_t *s1_1, int n", |
|
154 composite_test); |
|
155 /** |
|
156 * oil_composite_add_argb: |
|
157 * @i_n: DEST |
|
158 * @s1_n: SRC |
|
159 * @n: number of elements |
|
160 * |
|
161 * Performs the compositing operation DEST = SRC ADD DEST. |
|
162 */ |
|
163 OIL_DEFINE_CLASS_FULL (composite_add_argb, |
|
164 "uint32_t *i_n, uint32_t *s1_n, int n", |
|
165 composite_test); |
|
166 /** |
|
167 * oil_composite_add_argb_const_src: |
|
168 * @i_n: DEST |
|
169 * @s1_1: SRC |
|
170 * @n: number of elements |
|
171 * |
|
172 * Performs the compositing operation DEST = SRC ADD DEST, for a |
|
173 * constant SRC. |
|
174 */ |
|
175 OIL_DEFINE_CLASS_FULL (composite_add_argb_const_src, |
|
176 "uint32_t *i_n, uint32_t *s1_1, int n", |
|
177 composite_test); |
|
178 /** |
|
179 * oil_composite_in_over_argb: |
|
180 * @i_n: DEST |
|
181 * @s1_n: SRC |
|
182 * @s2_n: MASK |
|
183 * @n: number of elements |
|
184 * |
|
185 * Performs the compositing operation DEST = (SRC IN MASK) OVER DEST. |
|
186 */ |
|
187 OIL_DEFINE_CLASS_FULL (composite_in_over_argb, |
|
188 "uint32_t *i_n, uint32_t *s1_n, uint8_t *s2_n, int n", |
|
189 composite_test); |
|
190 /** |
|
191 * oil_composite_in_over_argb_const_src: |
|
192 * @i_n: DEST |
|
193 * @s1_1: SRC |
|
194 * @s2_n: MASK |
|
195 * @n: number of elements |
|
196 * |
|
197 * Performs the compositing operation DEST = (SRC IN MASK) OVER DEST, |
|
198 * for a constant SRC. |
|
199 */ |
|
200 OIL_DEFINE_CLASS_FULL (composite_in_over_argb_const_src, |
|
201 "uint32_t *i_n, uint32_t *s1_1, uint8_t *s2_n, int n", |
|
202 composite_test); |
|
203 /** |
|
204 * oil_composite_in_over_argb_const_mask: |
|
205 * @i_n: DEST |
|
206 * @s1_n: SRC |
|
207 * @s2_1: MASK |
|
208 * @n: number of elements |
|
209 * |
|
210 * Performs the compositing operation DEST = (SRC IN MASK) OVER DEST, |
|
211 * for a constant MASK. |
|
212 */ |
|
213 OIL_DEFINE_CLASS_FULL (composite_in_over_argb_const_mask, |
|
214 "uint32_t *i_n, uint32_t *s1_n, uint8_t *s2_1, int n", |
|
215 composite_test); |
|
216 /** |
|
217 * oil_composite_over_u8: |
|
218 * @i_n: DEST |
|
219 * @s1_n: SRC |
|
220 * @n: number of elements |
|
221 * |
|
222 * Performs the compositing operation DEST = SRC OVER DEST. |
|
223 */ |
|
224 OIL_DEFINE_CLASS_FULL (composite_over_u8, |
|
225 "uint8_t *i_n, uint8_t *s1_n, int n", |
|
226 composite_test); |
|
227 /** |
|
228 * oil_composite_add_u8: |
|
229 * @i_n: DEST |
|
230 * @s1_n: SRC |
|
231 * @n: number of elements |
|
232 * |
|
233 * Performs the compositing operation DEST = SRC ADD DEST. |
|
234 */ |
|
235 OIL_DEFINE_CLASS_FULL (composite_add_u8, |
|
236 "uint8_t *i_n, uint8_t *s1_n, int n", |
|
237 composite_test); |
|
238 /** |
|
239 * oil_composite_add_u8_const_src: |
|
240 * @i_n: DEST |
|
241 * @s1_1: SRC |
|
242 * @n: number of elements |
|
243 * |
|
244 * Performs the compositing operation DEST = SRC ADD DEST. |
|
245 */ |
|
246 OIL_DEFINE_CLASS_FULL (composite_add_u8_const_src, |
|
247 "uint8_t *i_n, uint8_t *s1_1, int n", |
|
248 composite_test); |
|
249 |
|
250 static void |
|
251 composite_in_argb_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
252 { |
|
253 int i; |
|
254 |
|
255 for(i=0;i<n;i++){ |
|
256 dest[i] = oil_argb( |
|
257 COMPOSITE_IN(oil_argb_A(src[i]), mask[i]), |
|
258 COMPOSITE_IN(oil_argb_R(src[i]), mask[i]), |
|
259 COMPOSITE_IN(oil_argb_G(src[i]), mask[i]), |
|
260 COMPOSITE_IN(oil_argb_B(src[i]), mask[i])); |
|
261 } |
|
262 } |
|
263 OIL_DEFINE_IMPL_REF (composite_in_argb_ref, composite_in_argb); |
|
264 |
|
265 static void |
|
266 composite_in_argb_const_src_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
267 { |
|
268 int i; |
|
269 |
|
270 for(i=0;i<n;i++){ |
|
271 dest[i] = oil_argb( |
|
272 COMPOSITE_IN(oil_argb_A(src[0]), mask[i]), |
|
273 COMPOSITE_IN(oil_argb_R(src[0]), mask[i]), |
|
274 COMPOSITE_IN(oil_argb_G(src[0]), mask[i]), |
|
275 COMPOSITE_IN(oil_argb_B(src[0]), mask[i])); |
|
276 } |
|
277 } |
|
278 OIL_DEFINE_IMPL_REF (composite_in_argb_const_src_ref, composite_in_argb_const_src); |
|
279 |
|
280 static void |
|
281 composite_in_argb_const_mask_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
282 { |
|
283 int i; |
|
284 |
|
285 for(i=0;i<n;i++){ |
|
286 dest[i] = oil_argb( |
|
287 COMPOSITE_IN(oil_argb_A(src[i]), mask[0]), |
|
288 COMPOSITE_IN(oil_argb_R(src[i]), mask[0]), |
|
289 COMPOSITE_IN(oil_argb_G(src[i]), mask[0]), |
|
290 COMPOSITE_IN(oil_argb_B(src[i]), mask[0])); |
|
291 } |
|
292 } |
|
293 OIL_DEFINE_IMPL_REF (composite_in_argb_const_mask_ref, composite_in_argb_const_mask); |
|
294 |
|
295 static void |
|
296 composite_over_argb_ref (uint32_t *dest, const uint32_t *src, int n) |
|
297 { |
|
298 int i; |
|
299 uint8_t a; |
|
300 |
|
301 for(i=0;i<n;i++){ |
|
302 a = oil_argb_A(src[i]); |
|
303 dest[i] = oil_argb( |
|
304 COMPOSITE_OVER(oil_argb_A(dest[i]),oil_argb_A(src[i]),a), |
|
305 COMPOSITE_OVER(oil_argb_R(dest[i]),oil_argb_R(src[i]),a), |
|
306 COMPOSITE_OVER(oil_argb_G(dest[i]),oil_argb_G(src[i]),a), |
|
307 COMPOSITE_OVER(oil_argb_B(dest[i]),oil_argb_B(src[i]),a)); |
|
308 } |
|
309 |
|
310 } |
|
311 OIL_DEFINE_IMPL_REF (composite_over_argb_ref, composite_over_argb); |
|
312 |
|
313 static void |
|
314 composite_over_argb_const_src_ref (uint32_t *dest, const uint32_t *src, int n) |
|
315 { |
|
316 int i; |
|
317 uint8_t a; |
|
318 |
|
319 a = oil_argb_A(src[0]); |
|
320 for(i=0;i<n;i++){ |
|
321 dest[i] = oil_argb( |
|
322 COMPOSITE_OVER(oil_argb_A(dest[i]),oil_argb_A(src[0]),a), |
|
323 COMPOSITE_OVER(oil_argb_R(dest[i]),oil_argb_R(src[0]),a), |
|
324 COMPOSITE_OVER(oil_argb_G(dest[i]),oil_argb_G(src[0]),a), |
|
325 COMPOSITE_OVER(oil_argb_B(dest[i]),oil_argb_B(src[0]),a)); |
|
326 } |
|
327 |
|
328 } |
|
329 OIL_DEFINE_IMPL_REF (composite_over_argb_const_src_ref, composite_over_argb_const_src); |
|
330 |
|
331 static void |
|
332 composite_add_argb_ref (uint32_t *dest, const uint32_t *src, int n) |
|
333 { |
|
334 int i; |
|
335 |
|
336 for(i=0;i<n;i++){ |
|
337 dest[i] = oil_argb( |
|
338 COMPOSITE_ADD(oil_argb_A(dest[i]),oil_argb_A(src[i])), |
|
339 COMPOSITE_ADD(oil_argb_R(dest[i]),oil_argb_R(src[i])), |
|
340 COMPOSITE_ADD(oil_argb_G(dest[i]),oil_argb_G(src[i])), |
|
341 COMPOSITE_ADD(oil_argb_B(dest[i]),oil_argb_B(src[i]))); |
|
342 } |
|
343 |
|
344 } |
|
345 OIL_DEFINE_IMPL_REF (composite_add_argb_ref, composite_add_argb); |
|
346 |
|
347 static void |
|
348 composite_add_argb_const_src_ref (uint32_t *dest, const uint32_t *src, int n) |
|
349 { |
|
350 int i; |
|
351 |
|
352 for(i=0;i<n;i++){ |
|
353 dest[i] = oil_argb( |
|
354 COMPOSITE_ADD(oil_argb_A(dest[i]),oil_argb_A(src[0])), |
|
355 COMPOSITE_ADD(oil_argb_R(dest[i]),oil_argb_R(src[0])), |
|
356 COMPOSITE_ADD(oil_argb_G(dest[i]),oil_argb_G(src[0])), |
|
357 COMPOSITE_ADD(oil_argb_B(dest[i]),oil_argb_B(src[0]))); |
|
358 } |
|
359 |
|
360 } |
|
361 OIL_DEFINE_IMPL_REF (composite_add_argb_const_src_ref, composite_add_argb_const_src); |
|
362 |
|
363 static void |
|
364 composite_in_over_argb_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
365 { |
|
366 int i; |
|
367 uint8_t a; |
|
368 uint32_t color; |
|
369 |
|
370 for(i=0;i<n;i++){ |
|
371 color = oil_argb( |
|
372 COMPOSITE_IN(oil_argb_A(src[i]), mask[i]), |
|
373 COMPOSITE_IN(oil_argb_R(src[i]), mask[i]), |
|
374 COMPOSITE_IN(oil_argb_G(src[i]), mask[i]), |
|
375 COMPOSITE_IN(oil_argb_B(src[i]), mask[i])); |
|
376 a = oil_argb_A(color); |
|
377 dest[i] = oil_argb( |
|
378 COMPOSITE_OVER(oil_argb_A(dest[i]),oil_argb_A(color),a), |
|
379 COMPOSITE_OVER(oil_argb_R(dest[i]),oil_argb_R(color),a), |
|
380 COMPOSITE_OVER(oil_argb_G(dest[i]),oil_argb_G(color),a), |
|
381 COMPOSITE_OVER(oil_argb_B(dest[i]),oil_argb_B(color),a)); |
|
382 } |
|
383 |
|
384 } |
|
385 OIL_DEFINE_IMPL_REF (composite_in_over_argb_ref, composite_in_over_argb); |
|
386 |
|
387 static void |
|
388 composite_in_over_argb_const_src_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
389 { |
|
390 int i; |
|
391 uint8_t a; |
|
392 uint32_t color; |
|
393 |
|
394 for(i=0;i<n;i++){ |
|
395 color = oil_argb( |
|
396 COMPOSITE_IN(oil_argb_A(src[0]), mask[i]), |
|
397 COMPOSITE_IN(oil_argb_R(src[0]), mask[i]), |
|
398 COMPOSITE_IN(oil_argb_G(src[0]), mask[i]), |
|
399 COMPOSITE_IN(oil_argb_B(src[0]), mask[i])); |
|
400 a = oil_argb_A(color); |
|
401 dest[i] = oil_argb( |
|
402 COMPOSITE_OVER(oil_argb_A(dest[i]),oil_argb_A(color),a), |
|
403 COMPOSITE_OVER(oil_argb_R(dest[i]),oil_argb_R(color),a), |
|
404 COMPOSITE_OVER(oil_argb_G(dest[i]),oil_argb_G(color),a), |
|
405 COMPOSITE_OVER(oil_argb_B(dest[i]),oil_argb_B(color),a)); |
|
406 } |
|
407 |
|
408 } |
|
409 OIL_DEFINE_IMPL_REF (composite_in_over_argb_const_src_ref, composite_in_over_argb_const_src); |
|
410 |
|
411 static void |
|
412 composite_in_over_argb_const_mask_ref (uint32_t *dest, const uint32_t *src, const uint8_t *mask, int n) |
|
413 { |
|
414 int i; |
|
415 uint8_t a; |
|
416 uint32_t color; |
|
417 |
|
418 for(i=0;i<n;i++){ |
|
419 color = oil_argb( |
|
420 COMPOSITE_IN(oil_argb_A(src[i]), mask[0]), |
|
421 COMPOSITE_IN(oil_argb_R(src[i]), mask[0]), |
|
422 COMPOSITE_IN(oil_argb_G(src[i]), mask[0]), |
|
423 COMPOSITE_IN(oil_argb_B(src[i]), mask[0])); |
|
424 a = oil_argb_A(color); |
|
425 dest[i] = oil_argb( |
|
426 COMPOSITE_OVER(oil_argb_A(dest[i]),oil_argb_A(color),a), |
|
427 COMPOSITE_OVER(oil_argb_R(dest[i]),oil_argb_R(color),a), |
|
428 COMPOSITE_OVER(oil_argb_G(dest[i]),oil_argb_G(color),a), |
|
429 COMPOSITE_OVER(oil_argb_B(dest[i]),oil_argb_B(color),a)); |
|
430 } |
|
431 |
|
432 } |
|
433 OIL_DEFINE_IMPL_REF (composite_in_over_argb_const_mask_ref, composite_in_over_argb_const_mask); |
|
434 |
|
435 static void |
|
436 composite_add_u8_ref (uint8_t *dest, const uint8_t *src, int n) |
|
437 { |
|
438 int i; |
|
439 |
|
440 for(i=0;i<n;i++){ |
|
441 dest[i] = COMPOSITE_ADD(dest[i],src[i]); |
|
442 } |
|
443 |
|
444 } |
|
445 OIL_DEFINE_IMPL_REF (composite_add_u8_ref, composite_add_u8); |
|
446 |
|
447 static void |
|
448 composite_add_u8_const_src_ref (uint8_t *dest, const uint8_t *src1_1, int n) |
|
449 { |
|
450 int i; |
|
451 |
|
452 for(i=0;i<n;i++){ |
|
453 dest[i] = COMPOSITE_ADD(dest[i],src1_1[0]); |
|
454 } |
|
455 |
|
456 } |
|
457 OIL_DEFINE_IMPL_REF (composite_add_u8_const_src_ref, composite_add_u8_const_src); |
|
458 |
|
459 static void |
|
460 composite_over_u8_ref (uint8_t *dest, const uint8_t *src, int n) |
|
461 { |
|
462 int i; |
|
463 |
|
464 for(i=0;i<n;i++){ |
|
465 dest[i] = COMPOSITE_OVER(dest[i],src[i],src[i]); |
|
466 } |
|
467 |
|
468 } |
|
469 OIL_DEFINE_IMPL_REF (composite_over_u8_ref, composite_over_u8); |
|
470 |
|
471 |
|
472 |
|
473 |
|
474 #ifdef __SYMBIAN32__ |
|
475 |
|
476 OilFunctionClass* __oil_function_class_composite_in_argb() { |
|
477 return &_oil_function_class_composite_in_argb; |
|
478 } |
|
479 #endif |
|
480 |
|
481 #ifdef __SYMBIAN32__ |
|
482 |
|
483 OilFunctionClass* __oil_function_class_composite_in_argb_const_src() { |
|
484 return &_oil_function_class_composite_in_argb_const_src; |
|
485 } |
|
486 #endif |
|
487 |
|
488 #ifdef __SYMBIAN32__ |
|
489 |
|
490 OilFunctionClass* __oil_function_class_composite_in_argb_const_mask() { |
|
491 return &_oil_function_class_composite_in_argb_const_mask; |
|
492 } |
|
493 #endif |
|
494 |
|
495 #ifdef __SYMBIAN32__ |
|
496 |
|
497 OilFunctionClass* __oil_function_class_composite_over_argb() { |
|
498 return &_oil_function_class_composite_over_argb; |
|
499 } |
|
500 #endif |
|
501 |
|
502 #ifdef __SYMBIAN32__ |
|
503 |
|
504 OilFunctionClass* __oil_function_class_composite_over_argb_const_src() { |
|
505 return &_oil_function_class_composite_over_argb_const_src; |
|
506 } |
|
507 #endif |
|
508 |
|
509 #ifdef __SYMBIAN32__ |
|
510 |
|
511 OilFunctionClass* __oil_function_class_composite_add_argb() { |
|
512 return &_oil_function_class_composite_add_argb; |
|
513 } |
|
514 #endif |
|
515 |
|
516 #ifdef __SYMBIAN32__ |
|
517 |
|
518 OilFunctionClass* __oil_function_class_composite_add_argb_const_src() { |
|
519 return &_oil_function_class_composite_add_argb_const_src; |
|
520 } |
|
521 #endif |
|
522 |
|
523 #ifdef __SYMBIAN32__ |
|
524 |
|
525 OilFunctionClass* __oil_function_class_composite_in_over_argb() { |
|
526 return &_oil_function_class_composite_in_over_argb; |
|
527 } |
|
528 #endif |
|
529 |
|
530 #ifdef __SYMBIAN32__ |
|
531 |
|
532 OilFunctionClass* __oil_function_class_composite_in_over_argb_const_src() { |
|
533 return &_oil_function_class_composite_in_over_argb_const_src; |
|
534 } |
|
535 #endif |
|
536 |
|
537 #ifdef __SYMBIAN32__ |
|
538 |
|
539 OilFunctionClass* __oil_function_class_composite_in_over_argb_const_mask() { |
|
540 return &_oil_function_class_composite_in_over_argb_const_mask; |
|
541 } |
|
542 #endif |
|
543 |
|
544 #ifdef __SYMBIAN32__ |
|
545 |
|
546 OilFunctionClass* __oil_function_class_composite_over_u8() { |
|
547 return &_oil_function_class_composite_over_u8; |
|
548 } |
|
549 #endif |
|
550 |
|
551 #ifdef __SYMBIAN32__ |
|
552 |
|
553 OilFunctionClass* __oil_function_class_composite_add_u8() { |
|
554 return &_oil_function_class_composite_add_u8; |
|
555 } |
|
556 #endif |
|
557 |
|
558 #ifdef __SYMBIAN32__ |
|
559 |
|
560 OilFunctionClass* __oil_function_class_composite_add_u8_const_src() { |
|
561 return &_oil_function_class_composite_add_u8_const_src; |
|
562 } |
|
563 #endif |
|
564 |
|
565 |
|
566 |
|
567 #ifdef __SYMBIAN32__ |
|
568 |
|
569 OilFunctionImpl* __oil_function_impl_composite_in_argb_ref() { |
|
570 return &_oil_function_impl_composite_in_argb_ref; |
|
571 } |
|
572 #endif |
|
573 |
|
574 #ifdef __SYMBIAN32__ |
|
575 |
|
576 OilFunctionImpl* __oil_function_impl_composite_in_argb_const_src_ref() { |
|
577 return &_oil_function_impl_composite_in_argb_const_src_ref; |
|
578 } |
|
579 #endif |
|
580 |
|
581 #ifdef __SYMBIAN32__ |
|
582 |
|
583 OilFunctionImpl* __oil_function_impl_composite_in_argb_const_mask_ref() { |
|
584 return &_oil_function_impl_composite_in_argb_const_mask_ref; |
|
585 } |
|
586 #endif |
|
587 |
|
588 #ifdef __SYMBIAN32__ |
|
589 |
|
590 OilFunctionImpl* __oil_function_impl_composite_over_argb_ref() { |
|
591 return &_oil_function_impl_composite_over_argb_ref; |
|
592 } |
|
593 #endif |
|
594 |
|
595 #ifdef __SYMBIAN32__ |
|
596 |
|
597 OilFunctionImpl* __oil_function_impl_composite_over_argb_const_src_ref() { |
|
598 return &_oil_function_impl_composite_over_argb_const_src_ref; |
|
599 } |
|
600 #endif |
|
601 |
|
602 #ifdef __SYMBIAN32__ |
|
603 |
|
604 OilFunctionImpl* __oil_function_impl_composite_add_argb_ref() { |
|
605 return &_oil_function_impl_composite_add_argb_ref; |
|
606 } |
|
607 #endif |
|
608 |
|
609 #ifdef __SYMBIAN32__ |
|
610 |
|
611 OilFunctionImpl* __oil_function_impl_composite_add_argb_const_src_ref() { |
|
612 return &_oil_function_impl_composite_add_argb_const_src_ref; |
|
613 } |
|
614 #endif |
|
615 |
|
616 #ifdef __SYMBIAN32__ |
|
617 |
|
618 OilFunctionImpl* __oil_function_impl_composite_in_over_argb_ref() { |
|
619 return &_oil_function_impl_composite_in_over_argb_ref; |
|
620 } |
|
621 #endif |
|
622 |
|
623 #ifdef __SYMBIAN32__ |
|
624 |
|
625 OilFunctionImpl* __oil_function_impl_composite_in_over_argb_const_src_ref() { |
|
626 return &_oil_function_impl_composite_in_over_argb_const_src_ref; |
|
627 } |
|
628 #endif |
|
629 |
|
630 #ifdef __SYMBIAN32__ |
|
631 |
|
632 OilFunctionImpl* __oil_function_impl_composite_in_over_argb_const_mask_ref() { |
|
633 return &_oil_function_impl_composite_in_over_argb_const_mask_ref; |
|
634 } |
|
635 #endif |
|
636 |
|
637 #ifdef __SYMBIAN32__ |
|
638 |
|
639 OilFunctionImpl* __oil_function_impl_composite_add_u8_ref() { |
|
640 return &_oil_function_impl_composite_add_u8_ref; |
|
641 } |
|
642 #endif |
|
643 |
|
644 #ifdef __SYMBIAN32__ |
|
645 |
|
646 OilFunctionImpl* __oil_function_impl_composite_add_u8_const_src_ref() { |
|
647 return &_oil_function_impl_composite_add_u8_const_src_ref; |
|
648 } |
|
649 #endif |
|
650 |
|
651 #ifdef __SYMBIAN32__ |
|
652 |
|
653 OilFunctionImpl* __oil_function_impl_composite_over_u8_ref() { |
|
654 return &_oil_function_impl_composite_over_u8_ref; |
|
655 } |
|
656 #endif |
|
657 |
|
658 |
|
659 |
|
660 #ifdef __SYMBIAN32__ |
|
661 |
|
662 EXPORT_C void** _oil_function_class_ptr_composite_in_argb () { |
|
663 oil_function_class_ptr_composite_in_argb = __oil_function_class_composite_in_argb(); |
|
664 return &oil_function_class_ptr_composite_in_argb->func; |
|
665 } |
|
666 #endif |
|
667 |
|
668 #ifdef __SYMBIAN32__ |
|
669 |
|
670 EXPORT_C void** _oil_function_class_ptr_composite_in_argb_const_src () { |
|
671 oil_function_class_ptr_composite_in_argb_const_src = __oil_function_class_composite_in_argb_const_src(); |
|
672 return &oil_function_class_ptr_composite_in_argb_const_src->func; |
|
673 } |
|
674 #endif |
|
675 |
|
676 #ifdef __SYMBIAN32__ |
|
677 |
|
678 EXPORT_C void** _oil_function_class_ptr_composite_in_argb_const_mask () { |
|
679 oil_function_class_ptr_composite_in_argb_const_mask = __oil_function_class_composite_in_argb_const_mask(); |
|
680 return &oil_function_class_ptr_composite_in_argb_const_mask->func; |
|
681 } |
|
682 #endif |
|
683 |
|
684 #ifdef __SYMBIAN32__ |
|
685 |
|
686 EXPORT_C void** _oil_function_class_ptr_composite_over_argb () { |
|
687 oil_function_class_ptr_composite_over_argb = __oil_function_class_composite_over_argb(); |
|
688 return &oil_function_class_ptr_composite_over_argb->func; |
|
689 } |
|
690 #endif |
|
691 |
|
692 #ifdef __SYMBIAN32__ |
|
693 |
|
694 EXPORT_C void** _oil_function_class_ptr_composite_over_argb_const_src () { |
|
695 oil_function_class_ptr_composite_over_argb_const_src = __oil_function_class_composite_over_argb_const_src(); |
|
696 return &oil_function_class_ptr_composite_over_argb_const_src->func; |
|
697 } |
|
698 #endif |
|
699 |
|
700 #ifdef __SYMBIAN32__ |
|
701 |
|
702 EXPORT_C void** _oil_function_class_ptr_composite_add_argb () { |
|
703 oil_function_class_ptr_composite_add_argb = __oil_function_class_composite_add_argb(); |
|
704 return &oil_function_class_ptr_composite_add_argb->func; |
|
705 } |
|
706 #endif |
|
707 |
|
708 #ifdef __SYMBIAN32__ |
|
709 |
|
710 EXPORT_C void** _oil_function_class_ptr_composite_add_argb_const_src () { |
|
711 oil_function_class_ptr_composite_add_argb_const_src = __oil_function_class_composite_add_argb_const_src(); |
|
712 return &oil_function_class_ptr_composite_add_argb_const_src->func; |
|
713 } |
|
714 #endif |
|
715 |
|
716 #ifdef __SYMBIAN32__ |
|
717 |
|
718 EXPORT_C void** _oil_function_class_ptr_composite_in_over_argb () { |
|
719 oil_function_class_ptr_composite_in_over_argb = __oil_function_class_composite_in_over_argb(); |
|
720 return &oil_function_class_ptr_composite_in_over_argb->func; |
|
721 } |
|
722 #endif |
|
723 |
|
724 #ifdef __SYMBIAN32__ |
|
725 |
|
726 EXPORT_C void** _oil_function_class_ptr_composite_in_over_argb_const_src () { |
|
727 oil_function_class_ptr_composite_in_over_argb_const_src = __oil_function_class_composite_in_over_argb_const_src(); |
|
728 return &oil_function_class_ptr_composite_in_over_argb_const_src->func; |
|
729 } |
|
730 #endif |
|
731 |
|
732 #ifdef __SYMBIAN32__ |
|
733 |
|
734 EXPORT_C void** _oil_function_class_ptr_composite_in_over_argb_const_mask () { |
|
735 oil_function_class_ptr_composite_in_over_argb_const_mask = __oil_function_class_composite_in_over_argb_const_mask(); |
|
736 return &oil_function_class_ptr_composite_in_over_argb_const_mask->func; |
|
737 } |
|
738 #endif |
|
739 |
|
740 #ifdef __SYMBIAN32__ |
|
741 |
|
742 EXPORT_C void** _oil_function_class_ptr_composite_over_u8 () { |
|
743 oil_function_class_ptr_composite_over_u8 = __oil_function_class_composite_over_u8(); |
|
744 return &oil_function_class_ptr_composite_over_u8->func; |
|
745 } |
|
746 #endif |
|
747 |
|
748 #ifdef __SYMBIAN32__ |
|
749 |
|
750 EXPORT_C void** _oil_function_class_ptr_composite_add_u8 () { |
|
751 oil_function_class_ptr_composite_add_u8 = __oil_function_class_composite_add_u8(); |
|
752 return &oil_function_class_ptr_composite_add_u8->func; |
|
753 } |
|
754 #endif |
|
755 |
|
756 #ifdef __SYMBIAN32__ |
|
757 |
|
758 EXPORT_C void** _oil_function_class_ptr_composite_add_u8_const_src () { |
|
759 oil_function_class_ptr_composite_add_u8_const_src = __oil_function_class_composite_add_u8_const_src(); |
|
760 return &oil_function_class_ptr_composite_add_u8_const_src->func; |
|
761 } |
|
762 #endif |
|
763 |