os/ossrv/genericopenlibs/liboil/src/composite_s.c
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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