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 * \overload 57 */ 58 extern void __attribute__((overloadable)) 59 rsSetObject(rs_path *dst, rs_path src); 60 /** 61 * \overload 62 */ 63 extern void __attribute__((overloadable)) 64 rsSetObject(rs_mesh *dst, rs_mesh src); 65 /** 66 * \overload 67 */ 68 extern void __attribute__((overloadable)) 69 rsSetObject(rs_program_fragment *dst, rs_program_fragment src); 70 /** 71 * \overload 72 */ 73 extern void __attribute__((overloadable)) 74 rsSetObject(rs_program_vertex *dst, rs_program_vertex src); 75 /** 76 * \overload 77 */ 78 extern void __attribute__((overloadable)) 79 rsSetObject(rs_program_raster *dst, rs_program_raster src); 80 /** 81 * \overload 82 */ 83 extern void __attribute__((overloadable)) 84 rsSetObject(rs_program_store *dst, rs_program_store src); 85 /** 86 * \overload 87 */ 88 extern void __attribute__((overloadable)) 89 rsSetObject(rs_font *dst, rs_font src); 90 91 /** 92 * Sets the object to NULL. 93 * 94 * @return bool 95 */ 96 extern void __attribute__((overloadable)) 97 rsClearObject(rs_element *dst); 98 /** 99 * \overload 100 */ 101 extern void __attribute__((overloadable)) 102 rsClearObject(rs_type *dst); 103 /** 104 * \overload 105 */ 106 extern void __attribute__((overloadable)) 107 rsClearObject(rs_allocation *dst); 108 /** 109 * \overload 110 */ 111 extern void __attribute__((overloadable)) 112 rsClearObject(rs_sampler *dst); 113 /** 114 * \overload 115 */ 116 extern void __attribute__((overloadable)) 117 rsClearObject(rs_script *dst); 118 /** 119 * \overload 120 */ 121 extern void __attribute__((overloadable)) 122 rsClearObject(rs_path *dst); 123 /** 124 * \overload 125 */ 126 extern void __attribute__((overloadable)) 127 rsClearObject(rs_mesh *dst); 128 /** 129 * \overload 130 */ 131 extern void __attribute__((overloadable)) 132 rsClearObject(rs_program_fragment *dst); 133 /** 134 * \overload 135 */ 136 extern void __attribute__((overloadable)) 137 rsClearObject(rs_program_vertex *dst); 138 /** 139 * \overload 140 */ 141 extern void __attribute__((overloadable)) 142 rsClearObject(rs_program_raster *dst); 143 /** 144 * \overload 145 */ 146 extern void __attribute__((overloadable)) 147 rsClearObject(rs_program_store *dst); 148 /** 149 * \overload 150 */ 151 extern void __attribute__((overloadable)) 152 rsClearObject(rs_font *dst); 153 154 155 156 /** 157 * Tests if the object is valid. Returns true if the object is valid, false if 158 * it is NULL. 159 * 160 * @return bool 161 */ 162 extern bool __attribute__((overloadable)) 163 rsIsObject(rs_element); 164 /** 165 * \overload 166 */ 167 extern bool __attribute__((overloadable)) 168 rsIsObject(rs_type); 169 /** 170 * \overload 171 */ 172 extern bool __attribute__((overloadable)) 173 rsIsObject(rs_allocation); 174 /** 175 * \overload 176 */ 177 extern bool __attribute__((overloadable)) 178 rsIsObject(rs_sampler); 179 /** 180 * \overload 181 */ 182 extern bool __attribute__((overloadable)) 183 rsIsObject(rs_script); 184 /** 185 * \overload 186 */ 187 extern bool __attribute__((overloadable)) 188 rsIsObject(rs_path); 189 /** 190 * \overload 191 */ 192 extern bool __attribute__((overloadable)) 193 rsIsObject(rs_mesh); 194 /** 195 * \overload 196 */ 197 extern bool __attribute__((overloadable)) 198 rsIsObject(rs_program_fragment); 199 /** 200 * \overload 201 */ 202 extern bool __attribute__((overloadable)) 203 rsIsObject(rs_program_vertex); 204 /** 205 * \overload 206 */ 207 extern bool __attribute__((overloadable)) 208 rsIsObject(rs_program_raster); 209 /** 210 * \overload 211 */ 212 extern bool __attribute__((overloadable)) 213 rsIsObject(rs_program_store); 214 /** 215 * \overload 216 */ 217 extern bool __attribute__((overloadable)) 218 rsIsObject(rs_font); 219 220 #endif 221