blob: ed6423b45836905641431ac6d8b83b895112d23c [file] [log] [blame]
Ying Wangb335bb02011-11-29 10:23:55 -08001/*
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);
Stephen Hinese65db132014-05-30 13:26:31 -070055
56#ifndef __LP64__
Ying Wangb335bb02011-11-29 10:23:55 -080057/**
58 * \overload
59 */
60extern void __attribute__((overloadable))
Ying Wang60999142013-01-07 13:59:36 -080061 rsSetObject(rs_path *dst, rs_path src);
62/**
63 * \overload
64 */
65extern void __attribute__((overloadable))
Ying Wangb335bb02011-11-29 10:23:55 -080066 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);
Stephen Hinese65db132014-05-30 13:26:31 -070092#endif //__LP64__
Ying Wangb335bb02011-11-29 10:23:55 -080093
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);
Stephen Hinese65db132014-05-30 13:26:31 -0700121
122
123#ifndef __LP64__
Ying Wangb335bb02011-11-29 10:23:55 -0800124/**
125 * \overload
126 */
127extern void __attribute__((overloadable))
Ying Wang60999142013-01-07 13:59:36 -0800128 rsClearObject(rs_path *dst);
129/**
130 * \overload
131 */
132extern void __attribute__((overloadable))
Ying Wangb335bb02011-11-29 10:23:55 -0800133 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);
Stephen Hinese65db132014-05-30 13:26:31 -0700159#endif //__LP64__
Ying Wangb335bb02011-11-29 10:23:55 -0800160
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);
Stephen Hinese65db132014-05-30 13:26:31 -0700190
191#ifndef __LP64__
Ying Wangb335bb02011-11-29 10:23:55 -0800192/**
193 * \overload
194 */
195extern bool __attribute__((overloadable))
Ying Wang60999142013-01-07 13:59:36 -0800196 rsIsObject(rs_path);
197/**
198 * \overload
199 */
200extern bool __attribute__((overloadable))
Ying Wangb335bb02011-11-29 10:23:55 -0800201 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);
Stephen Hinese65db132014-05-30 13:26:31 -0700227#endif //__LP64__
Ying Wangb335bb02011-11-29 10:23:55 -0800228
229#endif