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 */ 33extern void __attribute__((overloadable)) 34 rsSetObject(rs_element *dst, rs_element src); 35/** 36 * \overload 37 */ 38extern void __attribute__((overloadable)) 39 rsSetObject(rs_type *dst, rs_type src); 40/** 41 * \overload 42 */ 43extern void __attribute__((overloadable)) 44 rsSetObject(rs_allocation *dst, rs_allocation src); 45/** 46 * \overload 47 */ 48extern void __attribute__((overloadable)) 49 rsSetObject(rs_sampler *dst, rs_sampler src); 50/** 51 * \overload 52 */ 53extern void __attribute__((overloadable)) 54 rsSetObject(rs_script *dst, rs_script src); 55 56#ifndef __LP64__ 57/** 58 * \overload 59 */ 60extern void __attribute__((overloadable)) 61 rsSetObject(rs_path *dst, rs_path src); 62/** 63 * \overload 64 */ 65extern void __attribute__((overloadable)) 66 rsSetObject(rs_mesh *dst, rs_mesh src); 67/** 68 * \overload 69 */ 70extern void __attribute__((overloadable)) 71 rsSetObject(rs_program_fragment *dst, rs_program_fragment src); 72/** 73 * \overload 74 */ 75extern void __attribute__((overloadable)) 76 rsSetObject(rs_program_vertex *dst, rs_program_vertex src); 77/** 78 * \overload 79 */ 80extern void __attribute__((overloadable)) 81 rsSetObject(rs_program_raster *dst, rs_program_raster src); 82/** 83 * \overload 84 */ 85extern void __attribute__((overloadable)) 86 rsSetObject(rs_program_store *dst, rs_program_store src); 87/** 88 * \overload 89 */ 90extern 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 */ 99extern void __attribute__((overloadable)) 100 rsClearObject(rs_element *dst); 101/** 102 * \overload 103 */ 104extern void __attribute__((overloadable)) 105 rsClearObject(rs_type *dst); 106/** 107 * \overload 108 */ 109extern void __attribute__((overloadable)) 110 rsClearObject(rs_allocation *dst); 111/** 112 * \overload 113 */ 114extern void __attribute__((overloadable)) 115 rsClearObject(rs_sampler *dst); 116/** 117 * \overload 118 */ 119extern void __attribute__((overloadable)) 120 rsClearObject(rs_script *dst); 121 122 123#ifndef __LP64__ 124/** 125 * \overload 126 */ 127extern void __attribute__((overloadable)) 128 rsClearObject(rs_path *dst); 129/** 130 * \overload 131 */ 132extern void __attribute__((overloadable)) 133 rsClearObject(rs_mesh *dst); 134/** 135 * \overload 136 */ 137extern void __attribute__((overloadable)) 138 rsClearObject(rs_program_fragment *dst); 139/** 140 * \overload 141 */ 142extern void __attribute__((overloadable)) 143 rsClearObject(rs_program_vertex *dst); 144/** 145 * \overload 146 */ 147extern void __attribute__((overloadable)) 148 rsClearObject(rs_program_raster *dst); 149/** 150 * \overload 151 */ 152extern void __attribute__((overloadable)) 153 rsClearObject(rs_program_store *dst); 154/** 155 * \overload 156 */ 157extern 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 */ 168extern bool __attribute__((overloadable)) 169 rsIsObject(rs_element); 170/** 171 * \overload 172 */ 173extern bool __attribute__((overloadable)) 174 rsIsObject(rs_type); 175/** 176 * \overload 177 */ 178extern bool __attribute__((overloadable)) 179 rsIsObject(rs_allocation); 180/** 181 * \overload 182 */ 183extern bool __attribute__((overloadable)) 184 rsIsObject(rs_sampler); 185/** 186 * \overload 187 */ 188extern bool __attribute__((overloadable)) 189 rsIsObject(rs_script); 190 191#ifndef __LP64__ 192/** 193 * \overload 194 */ 195extern bool __attribute__((overloadable)) 196 rsIsObject(rs_path); 197/** 198 * \overload 199 */ 200extern bool __attribute__((overloadable)) 201 rsIsObject(rs_mesh); 202/** 203 * \overload 204 */ 205extern bool __attribute__((overloadable)) 206 rsIsObject(rs_program_fragment); 207/** 208 * \overload 209 */ 210extern bool __attribute__((overloadable)) 211 rsIsObject(rs_program_vertex); 212/** 213 * \overload 214 */ 215extern bool __attribute__((overloadable)) 216 rsIsObject(rs_program_raster); 217/** 218 * \overload 219 */ 220extern bool __attribute__((overloadable)) 221 rsIsObject(rs_program_store); 222/** 223 * \overload 224 */ 225extern bool __attribute__((overloadable)) 226 rsIsObject(rs_font); 227#endif //__LP64__ 228 229#endif 230