Home | History | Annotate | Download | only in scriptc
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /** @file rs_object.rsh
     18  *  \brief Object routines
     19  *
     20  *
     21  */
     22 
     23 #ifndef __RS_OBJECT_RSH__
     24 #define __RS_OBJECT_RSH__
     25 
     26 
     27 /**
     28  * Copy reference to the specified object.
     29  *
     30  * @param dst
     31  * @param src
     32  */
     33 extern void __attribute__((overloadable))
     34     rsSetObject(rs_element *dst, rs_element src);
     35 /**
     36  * \overload
     37  */
     38 extern void __attribute__((overloadable))
     39     rsSetObject(rs_type *dst, rs_type src);
     40 /**
     41  * \overload
     42  */
     43 extern void __attribute__((overloadable))
     44     rsSetObject(rs_allocation *dst, rs_allocation src);
     45 /**
     46  * \overload
     47  */
     48 extern void __attribute__((overloadable))
     49     rsSetObject(rs_sampler *dst, rs_sampler src);
     50 /**
     51  * \overload
     52  */
     53 extern void __attribute__((overloadable))
     54     rsSetObject(rs_script *dst, rs_script src);
     55 
     56 #ifndef __LP64__
     57 /**
     58  * \overload
     59  */
     60 extern void __attribute__((overloadable))
     61     rsSetObject(rs_path *dst, rs_path src);
     62 /**
     63  * \overload
     64  */
     65 extern void __attribute__((overloadable))
     66     rsSetObject(rs_mesh *dst, rs_mesh src);
     67 /**
     68  * \overload
     69  */
     70 extern void __attribute__((overloadable))
     71     rsSetObject(rs_program_fragment *dst, rs_program_fragment src);
     72 /**
     73  * \overload
     74  */
     75 extern void __attribute__((overloadable))
     76     rsSetObject(rs_program_vertex *dst, rs_program_vertex src);
     77 /**
     78  * \overload
     79  */
     80 extern void __attribute__((overloadable))
     81     rsSetObject(rs_program_raster *dst, rs_program_raster src);
     82 /**
     83  * \overload
     84  */
     85 extern void __attribute__((overloadable))
     86     rsSetObject(rs_program_store *dst, rs_program_store src);
     87 /**
     88  * \overload
     89  */
     90 extern void __attribute__((overloadable))
     91     rsSetObject(rs_font *dst, rs_font src);
     92 #endif //__LP64__
     93 
     94 /**
     95  * Sets the object to NULL.
     96  *
     97  * @return bool
     98  */
     99 extern void __attribute__((overloadable))
    100     rsClearObject(rs_element *dst);
    101 /**
    102  * \overload
    103  */
    104 extern void __attribute__((overloadable))
    105     rsClearObject(rs_type *dst);
    106 /**
    107  * \overload
    108  */
    109 extern void __attribute__((overloadable))
    110     rsClearObject(rs_allocation *dst);
    111 /**
    112  * \overload
    113  */
    114 extern void __attribute__((overloadable))
    115     rsClearObject(rs_sampler *dst);
    116 /**
    117  * \overload
    118  */
    119 extern void __attribute__((overloadable))
    120     rsClearObject(rs_script *dst);
    121 
    122 
    123 #ifndef __LP64__
    124 /**
    125  * \overload
    126  */
    127 extern void __attribute__((overloadable))
    128     rsClearObject(rs_path *dst);
    129 /**
    130  * \overload
    131  */
    132 extern void __attribute__((overloadable))
    133     rsClearObject(rs_mesh *dst);
    134 /**
    135  * \overload
    136  */
    137 extern void __attribute__((overloadable))
    138     rsClearObject(rs_program_fragment *dst);
    139 /**
    140  * \overload
    141  */
    142 extern void __attribute__((overloadable))
    143     rsClearObject(rs_program_vertex *dst);
    144 /**
    145  * \overload
    146  */
    147 extern void __attribute__((overloadable))
    148     rsClearObject(rs_program_raster *dst);
    149 /**
    150  * \overload
    151  */
    152 extern void __attribute__((overloadable))
    153     rsClearObject(rs_program_store *dst);
    154 /**
    155  * \overload
    156  */
    157 extern void __attribute__((overloadable))
    158     rsClearObject(rs_font *dst);
    159 #endif //__LP64__
    160 
    161 
    162 /**
    163  * Tests if the object is valid.  Returns true if the object is valid, false if
    164  * it is NULL.
    165  *
    166  * @return bool
    167  */
    168 extern bool __attribute__((overloadable))
    169     rsIsObject(rs_element);
    170 /**
    171  * \overload
    172  */
    173 extern bool __attribute__((overloadable))
    174     rsIsObject(rs_type);
    175 /**
    176  * \overload
    177  */
    178 extern bool __attribute__((overloadable))
    179     rsIsObject(rs_allocation);
    180 /**
    181  * \overload
    182  */
    183 extern bool __attribute__((overloadable))
    184     rsIsObject(rs_sampler);
    185 /**
    186  * \overload
    187  */
    188 extern bool __attribute__((overloadable))
    189     rsIsObject(rs_script);
    190 
    191 #ifndef __LP64__
    192 /**
    193  * \overload
    194  */
    195 extern bool __attribute__((overloadable))
    196     rsIsObject(rs_path);
    197 /**
    198  * \overload
    199  */
    200 extern bool __attribute__((overloadable))
    201     rsIsObject(rs_mesh);
    202 /**
    203  * \overload
    204  */
    205 extern bool __attribute__((overloadable))
    206     rsIsObject(rs_program_fragment);
    207 /**
    208  * \overload
    209  */
    210 extern bool __attribute__((overloadable))
    211     rsIsObject(rs_program_vertex);
    212 /**
    213  * \overload
    214  */
    215 extern bool __attribute__((overloadable))
    216     rsIsObject(rs_program_raster);
    217 /**
    218  * \overload
    219  */
    220 extern bool __attribute__((overloadable))
    221     rsIsObject(rs_program_store);
    222 /**
    223  * \overload
    224  */
    225 extern bool __attribute__((overloadable))
    226     rsIsObject(rs_font);
    227 #endif //__LP64__
    228 
    229 #endif
    230