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