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