Android O SDK.
[android_tools.git] / sdk / build-tools / 26.0.0 / renderscript / include / rs_allocation_data.rsh
blobea16767bb84d4b3cae042e98c614ab5ffd132816
1 /*
2  * Copyright (C) 2016 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  */
17 // Don't edit this file!  It is auto-generated by frameworks/rs/api/generate.sh.
20  * rs_allocation_data.rsh: Allocation Data Access Functions
21  *
22  * The functions below can be used to get and set the cells that comprise
23  * an allocation.
24  *
25  * - Individual cells are accessed using the rsGetElementAt* and
26  *   rsSetElementAt functions.
27  * - Multiple cells can be copied using the rsAllocationCopy* and
28  *   rsAllocationV* functions.
29  * - For getting values through a sampler, use rsSample.
30  *
31  * The rsGetElementAt and rsSetElement* functions are somewhat misnamed.
32  * They don't get or set elements, which are akin to data types; they get
33  * or set cells.  Think of them as rsGetCellAt and and rsSetCellAt.
34  */
36 #ifndef RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
37 #define RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
40  * rsAllocationCopy1DRange: Copy consecutive cells between allocations
41  *
42  * Copies the specified number of cells from one allocation to another.
43  *
44  * The two allocations must be different.  Using this function to copy whithin
45  * the same allocation yields undefined results.
46  *
47  * The function does not validate whether the offset plus count exceeds the size
48  * of either allocation.  Be careful!
49  *
50  * This function should only be called between 1D allocations.  Calling it
51  * on other allocations is undefined.
52  *
53  * This function should not be called from inside a kernel, or from any function
54  * that may be called directly or indirectly from a kernel. Doing so would cause a
55  * runtime error.
56  *
57  * Parameters:
58  *   dstAlloc: Allocation to copy cells into.
59  *   dstOff: Offset in the destination of the first cell to be copied into.
60  *   dstMip: Mip level in the destination allocation.  0 if mip mapping is not used.
61  *   count: Number of cells to be copied.
62  *   srcAlloc: Source allocation.
63  *   srcOff: Offset in the source of the first cell to be copied.
64  *   srcMip: Mip level in the source allocation.  0 if mip mapping is not used.
65  */
66 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
67 extern void __attribute__((overloadable))
68     rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count,
69                             rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip);
70 #endif
73  * rsAllocationCopy2DRange: Copy a rectangular region of cells between allocations
74  *
75  * Copies a rectangular region of cells from one allocation to another.
76  * (width * heigth) cells are copied.
77  *
78  * The two allocations must be different.  Using this function to copy whithin
79  * the same allocation yields undefined results.
80  *
81  * The function does not validate whether the the source or destination region
82  * exceeds the size of its respective allocation.  Be careful!
83  *
84  * This function should only be called between 2D allocations.  Calling it
85  * on other allocations is undefined.
86  *
87  * This function should not be called from inside a kernel, or from any function
88  * that may be called directly or indirectly from a kernel. Doing so would cause a
89  * runtime error.
90  *
91  * Parameters:
92  *   dstAlloc: Allocation to copy cells into.
93  *   dstXoff: X offset in the destination of the region to be set.
94  *   dstYoff: Y offset in the destination of the region to be set.
95  *   dstMip: Mip level in the destination allocation.  0 if mip mapping is not used.
96  *   dstFace: Cubemap face of the destination allocation.  Ignored for allocations that aren't cubemaps.
97  *   width: Width of the incoming region to update.
98  *   height: Height of the incoming region to update.
99  *   srcAlloc: Source allocation.
100  *   srcXoff: X offset in the source.
101  *   srcYoff: Y offset in the source.
102  *   srcMip: Mip level in the source allocation.  0 if mip mapping is not used.
103  *   srcFace: Cubemap face of the source allocation.  Ignored for allocations that aren't cubemaps.
104  */
105 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
106 extern void __attribute__((overloadable))
107     rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff,
108                             uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width,
109                             uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff,
110                             uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace);
111 #endif
114  * rsAllocationVLoadX: Get a vector from an allocation of scalars
116  * This function returns a vector composed of successive cells of the allocation.
117  * It assumes that the allocation contains scalars.
119  * The "X" in the name indicates that successive values are extracted by
120  * increasing the X index.  There are currently no functions to get successive
121  * values incrementing other dimensions.  Use multiple calls to rsGetElementAt()
122  * instead.
124  * For example, when calling rsAllocationVLoadX_int4(a, 20, 30), an int4 composed
125  * of a[20, 30], a[21, 30], a[22, 30], and a[23, 30] is returned.
127  * When retrieving from a three dimensional allocations, use the x, y, z variant.
128  * Similarly, use the x, y variant for two dimensional allocations and x for the
129  * mono dimensional allocations.
131  * For efficiency, this function does not validate the inputs.  Trying to wrap
132  * the X index, exceeding the size of the allocation, or using indices incompatible
133  * with the dimensionality of the allocation yields undefined results.
135  * See also rsAllocationVStoreX().
137  * Parameters:
138  *   a: Allocation to get the data from.
139  *   x: X offset in the allocation of the first cell to be copied from.
140  *   y: Y offset in the allocation of the first cell to be copied from.
141  *   z: Z offset in the allocation of the first cell to be copied from.
142  */
143 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
144 extern float2 __attribute__((overloadable))
145     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x);
146 #endif
148 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
149 extern float3 __attribute__((overloadable))
150     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x);
151 #endif
153 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
154 extern float4 __attribute__((overloadable))
155     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x);
156 #endif
158 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
159 extern double2 __attribute__((overloadable))
160     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x);
161 #endif
163 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
164 extern double3 __attribute__((overloadable))
165     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x);
166 #endif
168 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
169 extern double4 __attribute__((overloadable))
170     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x);
171 #endif
173 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
174 extern char2 __attribute__((overloadable))
175     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x);
176 #endif
178 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
179 extern char3 __attribute__((overloadable))
180     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x);
181 #endif
183 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
184 extern char4 __attribute__((overloadable))
185     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x);
186 #endif
188 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
189 extern uchar2 __attribute__((overloadable))
190     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x);
191 #endif
193 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
194 extern uchar3 __attribute__((overloadable))
195     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x);
196 #endif
198 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
199 extern uchar4 __attribute__((overloadable))
200     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x);
201 #endif
203 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
204 extern short2 __attribute__((overloadable))
205     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x);
206 #endif
208 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
209 extern short3 __attribute__((overloadable))
210     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x);
211 #endif
213 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
214 extern short4 __attribute__((overloadable))
215     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x);
216 #endif
218 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
219 extern ushort2 __attribute__((overloadable))
220     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x);
221 #endif
223 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
224 extern ushort3 __attribute__((overloadable))
225     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x);
226 #endif
228 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
229 extern ushort4 __attribute__((overloadable))
230     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x);
231 #endif
233 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
234 extern int2 __attribute__((overloadable))
235     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x);
236 #endif
238 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
239 extern int3 __attribute__((overloadable))
240     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x);
241 #endif
243 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
244 extern int4 __attribute__((overloadable))
245     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x);
246 #endif
248 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
249 extern uint2 __attribute__((overloadable))
250     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x);
251 #endif
253 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
254 extern uint3 __attribute__((overloadable))
255     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x);
256 #endif
258 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
259 extern uint4 __attribute__((overloadable))
260     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x);
261 #endif
263 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
264 extern long2 __attribute__((overloadable))
265     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x);
266 #endif
268 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
269 extern long3 __attribute__((overloadable))
270     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x);
271 #endif
273 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
274 extern long4 __attribute__((overloadable))
275     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x);
276 #endif
278 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
279 extern ulong2 __attribute__((overloadable))
280     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x);
281 #endif
283 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
284 extern ulong3 __attribute__((overloadable))
285     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x);
286 #endif
288 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
289 extern ulong4 __attribute__((overloadable))
290     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x);
291 #endif
293 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
294 extern float2 __attribute__((overloadable))
295     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y);
296 #endif
298 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
299 extern float3 __attribute__((overloadable))
300     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y);
301 #endif
303 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
304 extern float4 __attribute__((overloadable))
305     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y);
306 #endif
308 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
309 extern double2 __attribute__((overloadable))
310     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y);
311 #endif
313 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
314 extern double3 __attribute__((overloadable))
315     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y);
316 #endif
318 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
319 extern double4 __attribute__((overloadable))
320     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y);
321 #endif
323 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
324 extern char2 __attribute__((overloadable))
325     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y);
326 #endif
328 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
329 extern char3 __attribute__((overloadable))
330     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y);
331 #endif
333 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
334 extern char4 __attribute__((overloadable))
335     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y);
336 #endif
338 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
339 extern uchar2 __attribute__((overloadable))
340     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y);
341 #endif
343 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
344 extern uchar3 __attribute__((overloadable))
345     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y);
346 #endif
348 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
349 extern uchar4 __attribute__((overloadable))
350     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y);
351 #endif
353 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
354 extern short2 __attribute__((overloadable))
355     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y);
356 #endif
358 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
359 extern short3 __attribute__((overloadable))
360     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y);
361 #endif
363 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
364 extern short4 __attribute__((overloadable))
365     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y);
366 #endif
368 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
369 extern ushort2 __attribute__((overloadable))
370     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y);
371 #endif
373 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
374 extern ushort3 __attribute__((overloadable))
375     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y);
376 #endif
378 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
379 extern ushort4 __attribute__((overloadable))
380     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y);
381 #endif
383 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
384 extern int2 __attribute__((overloadable))
385     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y);
386 #endif
388 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
389 extern int3 __attribute__((overloadable))
390     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y);
391 #endif
393 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
394 extern int4 __attribute__((overloadable))
395     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y);
396 #endif
398 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
399 extern uint2 __attribute__((overloadable))
400     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y);
401 #endif
403 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
404 extern uint3 __attribute__((overloadable))
405     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y);
406 #endif
408 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
409 extern uint4 __attribute__((overloadable))
410     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y);
411 #endif
413 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
414 extern long2 __attribute__((overloadable))
415     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y);
416 #endif
418 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
419 extern long3 __attribute__((overloadable))
420     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y);
421 #endif
423 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
424 extern long4 __attribute__((overloadable))
425     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y);
426 #endif
428 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
429 extern ulong2 __attribute__((overloadable))
430     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y);
431 #endif
433 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
434 extern ulong3 __attribute__((overloadable))
435     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y);
436 #endif
438 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
439 extern ulong4 __attribute__((overloadable))
440     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y);
441 #endif
443 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
444 extern float2 __attribute__((overloadable))
445     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
446 #endif
448 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
449 extern float3 __attribute__((overloadable))
450     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
451 #endif
453 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
454 extern float4 __attribute__((overloadable))
455     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
456 #endif
458 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
459 extern double2 __attribute__((overloadable))
460     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
461 #endif
463 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
464 extern double3 __attribute__((overloadable))
465     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
466 #endif
468 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
469 extern double4 __attribute__((overloadable))
470     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
471 #endif
473 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
474 extern char2 __attribute__((overloadable))
475     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
476 #endif
478 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
479 extern char3 __attribute__((overloadable))
480     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
481 #endif
483 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
484 extern char4 __attribute__((overloadable))
485     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
486 #endif
488 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
489 extern uchar2 __attribute__((overloadable))
490     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
491 #endif
493 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
494 extern uchar3 __attribute__((overloadable))
495     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
496 #endif
498 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
499 extern uchar4 __attribute__((overloadable))
500     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
501 #endif
503 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
504 extern short2 __attribute__((overloadable))
505     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
506 #endif
508 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
509 extern short3 __attribute__((overloadable))
510     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
511 #endif
513 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
514 extern short4 __attribute__((overloadable))
515     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
516 #endif
518 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
519 extern ushort2 __attribute__((overloadable))
520     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
521 #endif
523 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
524 extern ushort3 __attribute__((overloadable))
525     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
526 #endif
528 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
529 extern ushort4 __attribute__((overloadable))
530     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
531 #endif
533 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
534 extern int2 __attribute__((overloadable))
535     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
536 #endif
538 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
539 extern int3 __attribute__((overloadable))
540     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
541 #endif
543 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
544 extern int4 __attribute__((overloadable))
545     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
546 #endif
548 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
549 extern uint2 __attribute__((overloadable))
550     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
551 #endif
553 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
554 extern uint3 __attribute__((overloadable))
555     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
556 #endif
558 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
559 extern uint4 __attribute__((overloadable))
560     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
561 #endif
563 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
564 extern long2 __attribute__((overloadable))
565     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
566 #endif
568 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
569 extern long3 __attribute__((overloadable))
570     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
571 #endif
573 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
574 extern long4 __attribute__((overloadable))
575     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
576 #endif
578 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
579 extern ulong2 __attribute__((overloadable))
580     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
581 #endif
583 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
584 extern ulong3 __attribute__((overloadable))
585     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
586 #endif
588 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
589 extern ulong4 __attribute__((overloadable))
590     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
591 #endif
594  * rsAllocationVStoreX: Store a vector into an allocation of scalars
596  * This function stores the entries of a vector into successive cells of an allocation.
597  * It assumes that the allocation contains scalars.
599  * The "X" in the name indicates that successive values are stored by increasing
600  * the X index.  There are currently no functions to store successive values
601  * incrementing other dimensions.  Use multiple calls to rsSetElementAt() instead.
603  * For example, when calling rsAllocationVStoreX_int3(a, v, 20, 30), v.x is stored
604  * at a[20, 30], v.y at a[21, 30], and v.z at a[22, 30].
606  * When storing into a three dimensional allocations, use the x, y, z variant.
607  * Similarly, use the x, y variant for two dimensional allocations and x for the
608  * mono dimensional allocations.
610  * For efficiency, this function does not validate the inputs.  Trying to wrap the
611  * X index, exceeding the size of the allocation, or using indices incompatible
612  * with the dimensionality of the allocation yiels undefined results.
614  * See also rsAllocationVLoadX().
616  * Parameters:
617  *   a: Allocation to store the data into.
618  *   val: Value to be stored.
619  *   x: X offset in the allocation of the first cell to be copied into.
620  *   y: Y offset in the allocation of the first cell to be copied into.
621  *   z: Z offset in the allocation of the first cell to be copied into.
622  */
623 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
624 extern void __attribute__((overloadable))
625     rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x);
626 #endif
628 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
629 extern void __attribute__((overloadable))
630     rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x);
631 #endif
633 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
634 extern void __attribute__((overloadable))
635     rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x);
636 #endif
638 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
639 extern void __attribute__((overloadable))
640     rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x);
641 #endif
643 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
644 extern void __attribute__((overloadable))
645     rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x);
646 #endif
648 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
649 extern void __attribute__((overloadable))
650     rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x);
651 #endif
653 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
654 extern void __attribute__((overloadable))
655     rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x);
656 #endif
658 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
659 extern void __attribute__((overloadable))
660     rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x);
661 #endif
663 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
664 extern void __attribute__((overloadable))
665     rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x);
666 #endif
668 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
669 extern void __attribute__((overloadable))
670     rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x);
671 #endif
673 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
674 extern void __attribute__((overloadable))
675     rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x);
676 #endif
678 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
679 extern void __attribute__((overloadable))
680     rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x);
681 #endif
683 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
684 extern void __attribute__((overloadable))
685     rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x);
686 #endif
688 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
689 extern void __attribute__((overloadable))
690     rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x);
691 #endif
693 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
694 extern void __attribute__((overloadable))
695     rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x);
696 #endif
698 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
699 extern void __attribute__((overloadable))
700     rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x);
701 #endif
703 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
704 extern void __attribute__((overloadable))
705     rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x);
706 #endif
708 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
709 extern void __attribute__((overloadable))
710     rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x);
711 #endif
713 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
714 extern void __attribute__((overloadable))
715     rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x);
716 #endif
718 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
719 extern void __attribute__((overloadable))
720     rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x);
721 #endif
723 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
724 extern void __attribute__((overloadable))
725     rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x);
726 #endif
728 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
729 extern void __attribute__((overloadable))
730     rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x);
731 #endif
733 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
734 extern void __attribute__((overloadable))
735     rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x);
736 #endif
738 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
739 extern void __attribute__((overloadable))
740     rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x);
741 #endif
743 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
744 extern void __attribute__((overloadable))
745     rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x);
746 #endif
748 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
749 extern void __attribute__((overloadable))
750     rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x);
751 #endif
753 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
754 extern void __attribute__((overloadable))
755     rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x);
756 #endif
758 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
759 extern void __attribute__((overloadable))
760     rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x);
761 #endif
763 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
764 extern void __attribute__((overloadable))
765     rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x);
766 #endif
768 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
769 extern void __attribute__((overloadable))
770     rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x);
771 #endif
773 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
774 extern void __attribute__((overloadable))
775     rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
776 #endif
778 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
779 extern void __attribute__((overloadable))
780     rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
781 #endif
783 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
784 extern void __attribute__((overloadable))
785     rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
786 #endif
788 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
789 extern void __attribute__((overloadable))
790     rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
791 #endif
793 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
794 extern void __attribute__((overloadable))
795     rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
796 #endif
798 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
799 extern void __attribute__((overloadable))
800     rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
801 #endif
803 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
804 extern void __attribute__((overloadable))
805     rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
806 #endif
808 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
809 extern void __attribute__((overloadable))
810     rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
811 #endif
813 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
814 extern void __attribute__((overloadable))
815     rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
816 #endif
818 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
819 extern void __attribute__((overloadable))
820     rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
821 #endif
823 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
824 extern void __attribute__((overloadable))
825     rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
826 #endif
828 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
829 extern void __attribute__((overloadable))
830     rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
831 #endif
833 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
834 extern void __attribute__((overloadable))
835     rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
836 #endif
838 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
839 extern void __attribute__((overloadable))
840     rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
841 #endif
843 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
844 extern void __attribute__((overloadable))
845     rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
846 #endif
848 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
849 extern void __attribute__((overloadable))
850     rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
851 #endif
853 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
854 extern void __attribute__((overloadable))
855     rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
856 #endif
858 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
859 extern void __attribute__((overloadable))
860     rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
861 #endif
863 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
864 extern void __attribute__((overloadable))
865     rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
866 #endif
868 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
869 extern void __attribute__((overloadable))
870     rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
871 #endif
873 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
874 extern void __attribute__((overloadable))
875     rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
876 #endif
878 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
879 extern void __attribute__((overloadable))
880     rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
881 #endif
883 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
884 extern void __attribute__((overloadable))
885     rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
886 #endif
888 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
889 extern void __attribute__((overloadable))
890     rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
891 #endif
893 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
894 extern void __attribute__((overloadable))
895     rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
896 #endif
898 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
899 extern void __attribute__((overloadable))
900     rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
901 #endif
903 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
904 extern void __attribute__((overloadable))
905     rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
906 #endif
908 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
909 extern void __attribute__((overloadable))
910     rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
911 #endif
913 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
914 extern void __attribute__((overloadable))
915     rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
916 #endif
918 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
919 extern void __attribute__((overloadable))
920     rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
921 #endif
923 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
924 extern void __attribute__((overloadable))
925     rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
926 #endif
928 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
929 extern void __attribute__((overloadable))
930     rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
931 #endif
933 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
934 extern void __attribute__((overloadable))
935     rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
936 #endif
938 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
939 extern void __attribute__((overloadable))
940     rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
941 #endif
943 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
944 extern void __attribute__((overloadable))
945     rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
946 #endif
948 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
949 extern void __attribute__((overloadable))
950     rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
951 #endif
953 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
954 extern void __attribute__((overloadable))
955     rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
956 #endif
958 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
959 extern void __attribute__((overloadable))
960     rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
961 #endif
963 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
964 extern void __attribute__((overloadable))
965     rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
966 #endif
968 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
969 extern void __attribute__((overloadable))
970     rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
971 #endif
973 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
974 extern void __attribute__((overloadable))
975     rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
976 #endif
978 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
979 extern void __attribute__((overloadable))
980     rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
981 #endif
983 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
984 extern void __attribute__((overloadable))
985     rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
986 #endif
988 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
989 extern void __attribute__((overloadable))
990     rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
991 #endif
993 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
994 extern void __attribute__((overloadable))
995     rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
996 #endif
998 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
999 extern void __attribute__((overloadable))
1000     rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
1001 #endif
1003 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1004 extern void __attribute__((overloadable))
1005     rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
1006 #endif
1008 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1009 extern void __attribute__((overloadable))
1010     rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
1011 #endif
1013 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1014 extern void __attribute__((overloadable))
1015     rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
1016 #endif
1018 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1019 extern void __attribute__((overloadable))
1020     rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
1021 #endif
1023 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1024 extern void __attribute__((overloadable))
1025     rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
1026 #endif
1028 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1029 extern void __attribute__((overloadable))
1030     rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
1031 #endif
1033 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1034 extern void __attribute__((overloadable))
1035     rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
1036 #endif
1038 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1039 extern void __attribute__((overloadable))
1040     rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
1041 #endif
1043 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1044 extern void __attribute__((overloadable))
1045     rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
1046 #endif
1048 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1049 extern void __attribute__((overloadable))
1050     rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
1051 #endif
1053 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1054 extern void __attribute__((overloadable))
1055     rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
1056 #endif
1058 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1059 extern void __attribute__((overloadable))
1060     rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
1061 #endif
1063 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1064 extern void __attribute__((overloadable))
1065     rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
1066 #endif
1068 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
1069 extern void __attribute__((overloadable))
1070     rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
1071 #endif
1074  * rsGetElementAt: Return a cell from an allocation
1076  * This function extracts a single cell from an allocation.
1078  * When retrieving from a three dimensional allocations, use the x, y, z variant.
1079  * Similarly, use the x, y variant for two dimensional allocations and x for the
1080  * mono dimensional allocations.
1082  * This function has two styles.  One returns the address of the value using a void*,
1083  * the other returns the actual value, e.g. rsGetElementAt() vs. rsGetElementAt_int4().
1084  * For primitive types, always use the latter as it is more efficient.
1085  */
1086 extern const void* __attribute__((overloadable))
1087     rsGetElementAt(rs_allocation a, uint32_t x);
1089 extern const void* __attribute__((overloadable))
1090     rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y);
1092 extern const void* __attribute__((overloadable))
1093     rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
1095 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1096 static inline float __attribute__((overloadable))
1097     rsGetElementAt_float(rs_allocation a, uint32_t x) {
1098     return ((float *)rsGetElementAt(a, x))[0];
1100 #endif
1102 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1103 static inline float2 __attribute__((overloadable))
1104     rsGetElementAt_float2(rs_allocation a, uint32_t x) {
1105     return ((float2 *)rsGetElementAt(a, x))[0];
1107 #endif
1109 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1110 static inline float3 __attribute__((overloadable))
1111     rsGetElementAt_float3(rs_allocation a, uint32_t x) {
1112     return ((float3 *)rsGetElementAt(a, x))[0];
1114 #endif
1116 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1117 static inline float4 __attribute__((overloadable))
1118     rsGetElementAt_float4(rs_allocation a, uint32_t x) {
1119     return ((float4 *)rsGetElementAt(a, x))[0];
1121 #endif
1123 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1124 static inline double __attribute__((overloadable))
1125     rsGetElementAt_double(rs_allocation a, uint32_t x) {
1126     return ((double *)rsGetElementAt(a, x))[0];
1128 #endif
1130 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1131 static inline double2 __attribute__((overloadable))
1132     rsGetElementAt_double2(rs_allocation a, uint32_t x) {
1133     return ((double2 *)rsGetElementAt(a, x))[0];
1135 #endif
1137 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1138 static inline double3 __attribute__((overloadable))
1139     rsGetElementAt_double3(rs_allocation a, uint32_t x) {
1140     return ((double3 *)rsGetElementAt(a, x))[0];
1142 #endif
1144 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1145 static inline double4 __attribute__((overloadable))
1146     rsGetElementAt_double4(rs_allocation a, uint32_t x) {
1147     return ((double4 *)rsGetElementAt(a, x))[0];
1149 #endif
1151 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1152 static inline char __attribute__((overloadable))
1153     rsGetElementAt_char(rs_allocation a, uint32_t x) {
1154     return ((char *)rsGetElementAt(a, x))[0];
1156 #endif
1158 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1159 static inline char2 __attribute__((overloadable))
1160     rsGetElementAt_char2(rs_allocation a, uint32_t x) {
1161     return ((char2 *)rsGetElementAt(a, x))[0];
1163 #endif
1165 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1166 static inline char3 __attribute__((overloadable))
1167     rsGetElementAt_char3(rs_allocation a, uint32_t x) {
1168     return ((char3 *)rsGetElementAt(a, x))[0];
1170 #endif
1172 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1173 static inline char4 __attribute__((overloadable))
1174     rsGetElementAt_char4(rs_allocation a, uint32_t x) {
1175     return ((char4 *)rsGetElementAt(a, x))[0];
1177 #endif
1179 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1180 static inline uchar __attribute__((overloadable))
1181     rsGetElementAt_uchar(rs_allocation a, uint32_t x) {
1182     return ((uchar *)rsGetElementAt(a, x))[0];
1184 #endif
1186 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1187 static inline uchar2 __attribute__((overloadable))
1188     rsGetElementAt_uchar2(rs_allocation a, uint32_t x) {
1189     return ((uchar2 *)rsGetElementAt(a, x))[0];
1191 #endif
1193 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1194 static inline uchar3 __attribute__((overloadable))
1195     rsGetElementAt_uchar3(rs_allocation a, uint32_t x) {
1196     return ((uchar3 *)rsGetElementAt(a, x))[0];
1198 #endif
1200 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1201 static inline uchar4 __attribute__((overloadable))
1202     rsGetElementAt_uchar4(rs_allocation a, uint32_t x) {
1203     return ((uchar4 *)rsGetElementAt(a, x))[0];
1205 #endif
1207 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1208 static inline short __attribute__((overloadable))
1209     rsGetElementAt_short(rs_allocation a, uint32_t x) {
1210     return ((short *)rsGetElementAt(a, x))[0];
1212 #endif
1214 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1215 static inline short2 __attribute__((overloadable))
1216     rsGetElementAt_short2(rs_allocation a, uint32_t x) {
1217     return ((short2 *)rsGetElementAt(a, x))[0];
1219 #endif
1221 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1222 static inline short3 __attribute__((overloadable))
1223     rsGetElementAt_short3(rs_allocation a, uint32_t x) {
1224     return ((short3 *)rsGetElementAt(a, x))[0];
1226 #endif
1228 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1229 static inline short4 __attribute__((overloadable))
1230     rsGetElementAt_short4(rs_allocation a, uint32_t x) {
1231     return ((short4 *)rsGetElementAt(a, x))[0];
1233 #endif
1235 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1236 static inline ushort __attribute__((overloadable))
1237     rsGetElementAt_ushort(rs_allocation a, uint32_t x) {
1238     return ((ushort *)rsGetElementAt(a, x))[0];
1240 #endif
1242 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1243 static inline ushort2 __attribute__((overloadable))
1244     rsGetElementAt_ushort2(rs_allocation a, uint32_t x) {
1245     return ((ushort2 *)rsGetElementAt(a, x))[0];
1247 #endif
1249 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1250 static inline ushort3 __attribute__((overloadable))
1251     rsGetElementAt_ushort3(rs_allocation a, uint32_t x) {
1252     return ((ushort3 *)rsGetElementAt(a, x))[0];
1254 #endif
1256 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1257 static inline ushort4 __attribute__((overloadable))
1258     rsGetElementAt_ushort4(rs_allocation a, uint32_t x) {
1259     return ((ushort4 *)rsGetElementAt(a, x))[0];
1261 #endif
1263 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1264 static inline int __attribute__((overloadable))
1265     rsGetElementAt_int(rs_allocation a, uint32_t x) {
1266     return ((int *)rsGetElementAt(a, x))[0];
1268 #endif
1270 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1271 static inline int2 __attribute__((overloadable))
1272     rsGetElementAt_int2(rs_allocation a, uint32_t x) {
1273     return ((int2 *)rsGetElementAt(a, x))[0];
1275 #endif
1277 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1278 static inline int3 __attribute__((overloadable))
1279     rsGetElementAt_int3(rs_allocation a, uint32_t x) {
1280     return ((int3 *)rsGetElementAt(a, x))[0];
1282 #endif
1284 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1285 static inline int4 __attribute__((overloadable))
1286     rsGetElementAt_int4(rs_allocation a, uint32_t x) {
1287     return ((int4 *)rsGetElementAt(a, x))[0];
1289 #endif
1291 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1292 static inline uint __attribute__((overloadable))
1293     rsGetElementAt_uint(rs_allocation a, uint32_t x) {
1294     return ((uint *)rsGetElementAt(a, x))[0];
1296 #endif
1298 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1299 static inline uint2 __attribute__((overloadable))
1300     rsGetElementAt_uint2(rs_allocation a, uint32_t x) {
1301     return ((uint2 *)rsGetElementAt(a, x))[0];
1303 #endif
1305 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1306 static inline uint3 __attribute__((overloadable))
1307     rsGetElementAt_uint3(rs_allocation a, uint32_t x) {
1308     return ((uint3 *)rsGetElementAt(a, x))[0];
1310 #endif
1312 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1313 static inline uint4 __attribute__((overloadable))
1314     rsGetElementAt_uint4(rs_allocation a, uint32_t x) {
1315     return ((uint4 *)rsGetElementAt(a, x))[0];
1317 #endif
1319 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1320 static inline long __attribute__((overloadable))
1321     rsGetElementAt_long(rs_allocation a, uint32_t x) {
1322     return ((long *)rsGetElementAt(a, x))[0];
1324 #endif
1326 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1327 static inline long2 __attribute__((overloadable))
1328     rsGetElementAt_long2(rs_allocation a, uint32_t x) {
1329     return ((long2 *)rsGetElementAt(a, x))[0];
1331 #endif
1333 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1334 static inline long3 __attribute__((overloadable))
1335     rsGetElementAt_long3(rs_allocation a, uint32_t x) {
1336     return ((long3 *)rsGetElementAt(a, x))[0];
1338 #endif
1340 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1341 static inline long4 __attribute__((overloadable))
1342     rsGetElementAt_long4(rs_allocation a, uint32_t x) {
1343     return ((long4 *)rsGetElementAt(a, x))[0];
1345 #endif
1347 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1348 static inline ulong __attribute__((overloadable))
1349     rsGetElementAt_ulong(rs_allocation a, uint32_t x) {
1350     return ((ulong *)rsGetElementAt(a, x))[0];
1352 #endif
1354 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1355 static inline ulong2 __attribute__((overloadable))
1356     rsGetElementAt_ulong2(rs_allocation a, uint32_t x) {
1357     return ((ulong2 *)rsGetElementAt(a, x))[0];
1359 #endif
1361 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1362 static inline ulong3 __attribute__((overloadable))
1363     rsGetElementAt_ulong3(rs_allocation a, uint32_t x) {
1364     return ((ulong3 *)rsGetElementAt(a, x))[0];
1366 #endif
1368 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1369 static inline ulong4 __attribute__((overloadable))
1370     rsGetElementAt_ulong4(rs_allocation a, uint32_t x) {
1371     return ((ulong4 *)rsGetElementAt(a, x))[0];
1373 #endif
1375 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1376 static inline float __attribute__((overloadable))
1377     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y) {
1378     return ((float *)rsGetElementAt(a, x, y))[0];
1380 #endif
1382 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1383 static inline float2 __attribute__((overloadable))
1384     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y) {
1385     return ((float2 *)rsGetElementAt(a, x, y))[0];
1387 #endif
1389 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1390 static inline float3 __attribute__((overloadable))
1391     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y) {
1392     return ((float3 *)rsGetElementAt(a, x, y))[0];
1394 #endif
1396 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1397 static inline float4 __attribute__((overloadable))
1398     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y) {
1399     return ((float4 *)rsGetElementAt(a, x, y))[0];
1401 #endif
1403 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1404 static inline double __attribute__((overloadable))
1405     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y) {
1406     return ((double *)rsGetElementAt(a, x, y))[0];
1408 #endif
1410 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1411 static inline double2 __attribute__((overloadable))
1412     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y) {
1413     return ((double2 *)rsGetElementAt(a, x, y))[0];
1415 #endif
1417 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1418 static inline double3 __attribute__((overloadable))
1419     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y) {
1420     return ((double3 *)rsGetElementAt(a, x, y))[0];
1422 #endif
1424 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1425 static inline double4 __attribute__((overloadable))
1426     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y) {
1427     return ((double4 *)rsGetElementAt(a, x, y))[0];
1429 #endif
1431 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1432 static inline char __attribute__((overloadable))
1433     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y) {
1434     return ((char *)rsGetElementAt(a, x, y))[0];
1436 #endif
1438 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1439 static inline char2 __attribute__((overloadable))
1440     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y) {
1441     return ((char2 *)rsGetElementAt(a, x, y))[0];
1443 #endif
1445 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1446 static inline char3 __attribute__((overloadable))
1447     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y) {
1448     return ((char3 *)rsGetElementAt(a, x, y))[0];
1450 #endif
1452 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1453 static inline char4 __attribute__((overloadable))
1454     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y) {
1455     return ((char4 *)rsGetElementAt(a, x, y))[0];
1457 #endif
1459 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1460 static inline uchar __attribute__((overloadable))
1461     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y) {
1462     return ((uchar *)rsGetElementAt(a, x, y))[0];
1464 #endif
1466 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1467 static inline uchar2 __attribute__((overloadable))
1468     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y) {
1469     return ((uchar2 *)rsGetElementAt(a, x, y))[0];
1471 #endif
1473 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1474 static inline uchar3 __attribute__((overloadable))
1475     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y) {
1476     return ((uchar3 *)rsGetElementAt(a, x, y))[0];
1478 #endif
1480 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1481 static inline uchar4 __attribute__((overloadable))
1482     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y) {
1483     return ((uchar4 *)rsGetElementAt(a, x, y))[0];
1485 #endif
1487 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1488 static inline short __attribute__((overloadable))
1489     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y) {
1490     return ((short *)rsGetElementAt(a, x, y))[0];
1492 #endif
1494 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1495 static inline short2 __attribute__((overloadable))
1496     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y) {
1497     return ((short2 *)rsGetElementAt(a, x, y))[0];
1499 #endif
1501 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1502 static inline short3 __attribute__((overloadable))
1503     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y) {
1504     return ((short3 *)rsGetElementAt(a, x, y))[0];
1506 #endif
1508 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1509 static inline short4 __attribute__((overloadable))
1510     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y) {
1511     return ((short4 *)rsGetElementAt(a, x, y))[0];
1513 #endif
1515 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1516 static inline ushort __attribute__((overloadable))
1517     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y) {
1518     return ((ushort *)rsGetElementAt(a, x, y))[0];
1520 #endif
1522 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1523 static inline ushort2 __attribute__((overloadable))
1524     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y) {
1525     return ((ushort2 *)rsGetElementAt(a, x, y))[0];
1527 #endif
1529 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1530 static inline ushort3 __attribute__((overloadable))
1531     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y) {
1532     return ((ushort3 *)rsGetElementAt(a, x, y))[0];
1534 #endif
1536 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1537 static inline ushort4 __attribute__((overloadable))
1538     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y) {
1539     return ((ushort4 *)rsGetElementAt(a, x, y))[0];
1541 #endif
1543 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1544 static inline int __attribute__((overloadable))
1545     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y) {
1546     return ((int *)rsGetElementAt(a, x, y))[0];
1548 #endif
1550 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1551 static inline int2 __attribute__((overloadable))
1552     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y) {
1553     return ((int2 *)rsGetElementAt(a, x, y))[0];
1555 #endif
1557 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1558 static inline int3 __attribute__((overloadable))
1559     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y) {
1560     return ((int3 *)rsGetElementAt(a, x, y))[0];
1562 #endif
1564 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1565 static inline int4 __attribute__((overloadable))
1566     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y) {
1567     return ((int4 *)rsGetElementAt(a, x, y))[0];
1569 #endif
1571 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1572 static inline uint __attribute__((overloadable))
1573     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y) {
1574     return ((uint *)rsGetElementAt(a, x, y))[0];
1576 #endif
1578 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1579 static inline uint2 __attribute__((overloadable))
1580     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y) {
1581     return ((uint2 *)rsGetElementAt(a, x, y))[0];
1583 #endif
1585 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1586 static inline uint3 __attribute__((overloadable))
1587     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y) {
1588     return ((uint3 *)rsGetElementAt(a, x, y))[0];
1590 #endif
1592 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1593 static inline uint4 __attribute__((overloadable))
1594     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y) {
1595     return ((uint4 *)rsGetElementAt(a, x, y))[0];
1597 #endif
1599 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1600 static inline long __attribute__((overloadable))
1601     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y) {
1602     return ((long *)rsGetElementAt(a, x, y))[0];
1604 #endif
1606 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1607 static inline long2 __attribute__((overloadable))
1608     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y) {
1609     return ((long2 *)rsGetElementAt(a, x, y))[0];
1611 #endif
1613 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1614 static inline long3 __attribute__((overloadable))
1615     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y) {
1616     return ((long3 *)rsGetElementAt(a, x, y))[0];
1618 #endif
1620 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1621 static inline long4 __attribute__((overloadable))
1622     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y) {
1623     return ((long4 *)rsGetElementAt(a, x, y))[0];
1625 #endif
1627 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1628 static inline ulong __attribute__((overloadable))
1629     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y) {
1630     return ((ulong *)rsGetElementAt(a, x, y))[0];
1632 #endif
1634 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1635 static inline ulong2 __attribute__((overloadable))
1636     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y) {
1637     return ((ulong2 *)rsGetElementAt(a, x, y))[0];
1639 #endif
1641 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1642 static inline ulong3 __attribute__((overloadable))
1643     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y) {
1644     return ((ulong3 *)rsGetElementAt(a, x, y))[0];
1646 #endif
1648 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1649 static inline ulong4 __attribute__((overloadable))
1650     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y) {
1651     return ((ulong4 *)rsGetElementAt(a, x, y))[0];
1653 #endif
1655 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1656 static inline float __attribute__((overloadable))
1657     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1658     return ((float *)rsGetElementAt(a, x, y, z))[0];
1660 #endif
1662 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1663 static inline float2 __attribute__((overloadable))
1664     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1665     return ((float2 *)rsGetElementAt(a, x, y, z))[0];
1667 #endif
1669 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1670 static inline float3 __attribute__((overloadable))
1671     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1672     return ((float3 *)rsGetElementAt(a, x, y, z))[0];
1674 #endif
1676 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1677 static inline float4 __attribute__((overloadable))
1678     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1679     return ((float4 *)rsGetElementAt(a, x, y, z))[0];
1681 #endif
1683 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1684 static inline double __attribute__((overloadable))
1685     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1686     return ((double *)rsGetElementAt(a, x, y, z))[0];
1688 #endif
1690 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1691 static inline double2 __attribute__((overloadable))
1692     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1693     return ((double2 *)rsGetElementAt(a, x, y, z))[0];
1695 #endif
1697 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1698 static inline double3 __attribute__((overloadable))
1699     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1700     return ((double3 *)rsGetElementAt(a, x, y, z))[0];
1702 #endif
1704 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1705 static inline double4 __attribute__((overloadable))
1706     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1707     return ((double4 *)rsGetElementAt(a, x, y, z))[0];
1709 #endif
1711 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1712 static inline char __attribute__((overloadable))
1713     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1714     return ((char *)rsGetElementAt(a, x, y, z))[0];
1716 #endif
1718 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1719 static inline char2 __attribute__((overloadable))
1720     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1721     return ((char2 *)rsGetElementAt(a, x, y, z))[0];
1723 #endif
1725 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1726 static inline char3 __attribute__((overloadable))
1727     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1728     return ((char3 *)rsGetElementAt(a, x, y, z))[0];
1730 #endif
1732 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1733 static inline char4 __attribute__((overloadable))
1734     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1735     return ((char4 *)rsGetElementAt(a, x, y, z))[0];
1737 #endif
1739 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1740 static inline uchar __attribute__((overloadable))
1741     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1742     return ((uchar *)rsGetElementAt(a, x, y, z))[0];
1744 #endif
1746 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1747 static inline uchar2 __attribute__((overloadable))
1748     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1749     return ((uchar2 *)rsGetElementAt(a, x, y, z))[0];
1751 #endif
1753 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1754 static inline uchar3 __attribute__((overloadable))
1755     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1756     return ((uchar3 *)rsGetElementAt(a, x, y, z))[0];
1758 #endif
1760 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1761 static inline uchar4 __attribute__((overloadable))
1762     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1763     return ((uchar4 *)rsGetElementAt(a, x, y, z))[0];
1765 #endif
1767 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1768 static inline short __attribute__((overloadable))
1769     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1770     return ((short *)rsGetElementAt(a, x, y, z))[0];
1772 #endif
1774 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1775 static inline short2 __attribute__((overloadable))
1776     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1777     return ((short2 *)rsGetElementAt(a, x, y, z))[0];
1779 #endif
1781 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1782 static inline short3 __attribute__((overloadable))
1783     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1784     return ((short3 *)rsGetElementAt(a, x, y, z))[0];
1786 #endif
1788 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1789 static inline short4 __attribute__((overloadable))
1790     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1791     return ((short4 *)rsGetElementAt(a, x, y, z))[0];
1793 #endif
1795 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1796 static inline ushort __attribute__((overloadable))
1797     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1798     return ((ushort *)rsGetElementAt(a, x, y, z))[0];
1800 #endif
1802 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1803 static inline ushort2 __attribute__((overloadable))
1804     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1805     return ((ushort2 *)rsGetElementAt(a, x, y, z))[0];
1807 #endif
1809 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1810 static inline ushort3 __attribute__((overloadable))
1811     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1812     return ((ushort3 *)rsGetElementAt(a, x, y, z))[0];
1814 #endif
1816 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1817 static inline ushort4 __attribute__((overloadable))
1818     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1819     return ((ushort4 *)rsGetElementAt(a, x, y, z))[0];
1821 #endif
1823 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1824 static inline int __attribute__((overloadable))
1825     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1826     return ((int *)rsGetElementAt(a, x, y, z))[0];
1828 #endif
1830 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1831 static inline int2 __attribute__((overloadable))
1832     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1833     return ((int2 *)rsGetElementAt(a, x, y, z))[0];
1835 #endif
1837 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1838 static inline int3 __attribute__((overloadable))
1839     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1840     return ((int3 *)rsGetElementAt(a, x, y, z))[0];
1842 #endif
1844 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1845 static inline int4 __attribute__((overloadable))
1846     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1847     return ((int4 *)rsGetElementAt(a, x, y, z))[0];
1849 #endif
1851 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1852 static inline uint __attribute__((overloadable))
1853     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1854     return ((uint *)rsGetElementAt(a, x, y, z))[0];
1856 #endif
1858 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1859 static inline uint2 __attribute__((overloadable))
1860     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1861     return ((uint2 *)rsGetElementAt(a, x, y, z))[0];
1863 #endif
1865 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1866 static inline uint3 __attribute__((overloadable))
1867     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1868     return ((uint3 *)rsGetElementAt(a, x, y, z))[0];
1870 #endif
1872 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1873 static inline uint4 __attribute__((overloadable))
1874     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1875     return ((uint4 *)rsGetElementAt(a, x, y, z))[0];
1877 #endif
1879 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1880 static inline long __attribute__((overloadable))
1881     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1882     return ((long *)rsGetElementAt(a, x, y, z))[0];
1884 #endif
1886 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1887 static inline long2 __attribute__((overloadable))
1888     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1889     return ((long2 *)rsGetElementAt(a, x, y, z))[0];
1891 #endif
1893 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1894 static inline long3 __attribute__((overloadable))
1895     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1896     return ((long3 *)rsGetElementAt(a, x, y, z))[0];
1898 #endif
1900 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1901 static inline long4 __attribute__((overloadable))
1902     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1903     return ((long4 *)rsGetElementAt(a, x, y, z))[0];
1905 #endif
1907 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1908 static inline ulong __attribute__((overloadable))
1909     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1910     return ((ulong *)rsGetElementAt(a, x, y, z))[0];
1912 #endif
1914 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1915 static inline ulong2 __attribute__((overloadable))
1916     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1917     return ((ulong2 *)rsGetElementAt(a, x, y, z))[0];
1919 #endif
1921 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1922 static inline ulong3 __attribute__((overloadable))
1923     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1924     return ((ulong3 *)rsGetElementAt(a, x, y, z))[0];
1926 #endif
1928 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
1929 static inline ulong4 __attribute__((overloadable))
1930     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1931     return ((ulong4 *)rsGetElementAt(a, x, y, z))[0];
1933 #endif
1935 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1936 extern float __attribute__((overloadable))
1937     rsGetElementAt_float(rs_allocation a, uint32_t x);
1938 #endif
1940 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1941 extern float2 __attribute__((overloadable))
1942     rsGetElementAt_float2(rs_allocation a, uint32_t x);
1943 #endif
1945 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1946 extern float3 __attribute__((overloadable))
1947     rsGetElementAt_float3(rs_allocation a, uint32_t x);
1948 #endif
1950 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1951 extern float4 __attribute__((overloadable))
1952     rsGetElementAt_float4(rs_allocation a, uint32_t x);
1953 #endif
1955 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1956 extern double __attribute__((overloadable))
1957     rsGetElementAt_double(rs_allocation a, uint32_t x);
1958 #endif
1960 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1961 extern double2 __attribute__((overloadable))
1962     rsGetElementAt_double2(rs_allocation a, uint32_t x);
1963 #endif
1965 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1966 extern double3 __attribute__((overloadable))
1967     rsGetElementAt_double3(rs_allocation a, uint32_t x);
1968 #endif
1970 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1971 extern double4 __attribute__((overloadable))
1972     rsGetElementAt_double4(rs_allocation a, uint32_t x);
1973 #endif
1975 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1976 extern char __attribute__((overloadable))
1977     rsGetElementAt_char(rs_allocation a, uint32_t x);
1978 #endif
1980 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1981 extern char2 __attribute__((overloadable))
1982     rsGetElementAt_char2(rs_allocation a, uint32_t x);
1983 #endif
1985 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1986 extern char3 __attribute__((overloadable))
1987     rsGetElementAt_char3(rs_allocation a, uint32_t x);
1988 #endif
1990 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1991 extern char4 __attribute__((overloadable))
1992     rsGetElementAt_char4(rs_allocation a, uint32_t x);
1993 #endif
1995 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
1996 extern uchar __attribute__((overloadable))
1997     rsGetElementAt_uchar(rs_allocation a, uint32_t x);
1998 #endif
2000 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2001 extern uchar2 __attribute__((overloadable))
2002     rsGetElementAt_uchar2(rs_allocation a, uint32_t x);
2003 #endif
2005 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2006 extern uchar3 __attribute__((overloadable))
2007     rsGetElementAt_uchar3(rs_allocation a, uint32_t x);
2008 #endif
2010 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2011 extern uchar4 __attribute__((overloadable))
2012     rsGetElementAt_uchar4(rs_allocation a, uint32_t x);
2013 #endif
2015 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2016 extern short __attribute__((overloadable))
2017     rsGetElementAt_short(rs_allocation a, uint32_t x);
2018 #endif
2020 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2021 extern short2 __attribute__((overloadable))
2022     rsGetElementAt_short2(rs_allocation a, uint32_t x);
2023 #endif
2025 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2026 extern short3 __attribute__((overloadable))
2027     rsGetElementAt_short3(rs_allocation a, uint32_t x);
2028 #endif
2030 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2031 extern short4 __attribute__((overloadable))
2032     rsGetElementAt_short4(rs_allocation a, uint32_t x);
2033 #endif
2035 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2036 extern ushort __attribute__((overloadable))
2037     rsGetElementAt_ushort(rs_allocation a, uint32_t x);
2038 #endif
2040 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2041 extern ushort2 __attribute__((overloadable))
2042     rsGetElementAt_ushort2(rs_allocation a, uint32_t x);
2043 #endif
2045 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2046 extern ushort3 __attribute__((overloadable))
2047     rsGetElementAt_ushort3(rs_allocation a, uint32_t x);
2048 #endif
2050 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2051 extern ushort4 __attribute__((overloadable))
2052     rsGetElementAt_ushort4(rs_allocation a, uint32_t x);
2053 #endif
2055 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2056 extern int __attribute__((overloadable))
2057     rsGetElementAt_int(rs_allocation a, uint32_t x);
2058 #endif
2060 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2061 extern int2 __attribute__((overloadable))
2062     rsGetElementAt_int2(rs_allocation a, uint32_t x);
2063 #endif
2065 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2066 extern int3 __attribute__((overloadable))
2067     rsGetElementAt_int3(rs_allocation a, uint32_t x);
2068 #endif
2070 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2071 extern int4 __attribute__((overloadable))
2072     rsGetElementAt_int4(rs_allocation a, uint32_t x);
2073 #endif
2075 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2076 extern uint __attribute__((overloadable))
2077     rsGetElementAt_uint(rs_allocation a, uint32_t x);
2078 #endif
2080 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2081 extern uint2 __attribute__((overloadable))
2082     rsGetElementAt_uint2(rs_allocation a, uint32_t x);
2083 #endif
2085 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2086 extern uint3 __attribute__((overloadable))
2087     rsGetElementAt_uint3(rs_allocation a, uint32_t x);
2088 #endif
2090 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2091 extern uint4 __attribute__((overloadable))
2092     rsGetElementAt_uint4(rs_allocation a, uint32_t x);
2093 #endif
2095 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2096 extern long __attribute__((overloadable))
2097     rsGetElementAt_long(rs_allocation a, uint32_t x);
2098 #endif
2100 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2101 extern long2 __attribute__((overloadable))
2102     rsGetElementAt_long2(rs_allocation a, uint32_t x);
2103 #endif
2105 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2106 extern long3 __attribute__((overloadable))
2107     rsGetElementAt_long3(rs_allocation a, uint32_t x);
2108 #endif
2110 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2111 extern long4 __attribute__((overloadable))
2112     rsGetElementAt_long4(rs_allocation a, uint32_t x);
2113 #endif
2115 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2116 extern ulong __attribute__((overloadable))
2117     rsGetElementAt_ulong(rs_allocation a, uint32_t x);
2118 #endif
2120 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2121 extern ulong2 __attribute__((overloadable))
2122     rsGetElementAt_ulong2(rs_allocation a, uint32_t x);
2123 #endif
2125 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2126 extern ulong3 __attribute__((overloadable))
2127     rsGetElementAt_ulong3(rs_allocation a, uint32_t x);
2128 #endif
2130 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2131 extern ulong4 __attribute__((overloadable))
2132     rsGetElementAt_ulong4(rs_allocation a, uint32_t x);
2133 #endif
2135 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2136 extern float __attribute__((overloadable))
2137     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y);
2138 #endif
2140 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2141 extern float2 __attribute__((overloadable))
2142     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y);
2143 #endif
2145 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2146 extern float3 __attribute__((overloadable))
2147     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y);
2148 #endif
2150 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2151 extern float4 __attribute__((overloadable))
2152     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y);
2153 #endif
2155 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2156 extern double __attribute__((overloadable))
2157     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y);
2158 #endif
2160 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2161 extern double2 __attribute__((overloadable))
2162     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y);
2163 #endif
2165 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2166 extern double3 __attribute__((overloadable))
2167     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y);
2168 #endif
2170 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2171 extern double4 __attribute__((overloadable))
2172     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y);
2173 #endif
2175 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2176 extern char __attribute__((overloadable))
2177     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y);
2178 #endif
2180 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2181 extern char2 __attribute__((overloadable))
2182     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y);
2183 #endif
2185 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2186 extern char3 __attribute__((overloadable))
2187     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y);
2188 #endif
2190 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2191 extern char4 __attribute__((overloadable))
2192     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y);
2193 #endif
2195 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2196 extern uchar __attribute__((overloadable))
2197     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y);
2198 #endif
2200 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2201 extern uchar2 __attribute__((overloadable))
2202     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y);
2203 #endif
2205 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2206 extern uchar3 __attribute__((overloadable))
2207     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y);
2208 #endif
2210 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2211 extern uchar4 __attribute__((overloadable))
2212     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y);
2213 #endif
2215 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2216 extern short __attribute__((overloadable))
2217     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y);
2218 #endif
2220 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2221 extern short2 __attribute__((overloadable))
2222     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y);
2223 #endif
2225 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2226 extern short3 __attribute__((overloadable))
2227     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y);
2228 #endif
2230 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2231 extern short4 __attribute__((overloadable))
2232     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y);
2233 #endif
2235 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2236 extern ushort __attribute__((overloadable))
2237     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y);
2238 #endif
2240 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2241 extern ushort2 __attribute__((overloadable))
2242     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y);
2243 #endif
2245 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2246 extern ushort3 __attribute__((overloadable))
2247     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y);
2248 #endif
2250 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2251 extern ushort4 __attribute__((overloadable))
2252     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y);
2253 #endif
2255 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2256 extern int __attribute__((overloadable))
2257     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y);
2258 #endif
2260 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2261 extern int2 __attribute__((overloadable))
2262     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y);
2263 #endif
2265 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2266 extern int3 __attribute__((overloadable))
2267     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y);
2268 #endif
2270 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2271 extern int4 __attribute__((overloadable))
2272     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y);
2273 #endif
2275 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2276 extern uint __attribute__((overloadable))
2277     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y);
2278 #endif
2280 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2281 extern uint2 __attribute__((overloadable))
2282     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y);
2283 #endif
2285 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2286 extern uint3 __attribute__((overloadable))
2287     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y);
2288 #endif
2290 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2291 extern uint4 __attribute__((overloadable))
2292     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y);
2293 #endif
2295 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2296 extern long __attribute__((overloadable))
2297     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y);
2298 #endif
2300 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2301 extern long2 __attribute__((overloadable))
2302     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y);
2303 #endif
2305 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2306 extern long3 __attribute__((overloadable))
2307     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y);
2308 #endif
2310 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2311 extern long4 __attribute__((overloadable))
2312     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y);
2313 #endif
2315 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2316 extern ulong __attribute__((overloadable))
2317     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y);
2318 #endif
2320 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2321 extern ulong2 __attribute__((overloadable))
2322     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y);
2323 #endif
2325 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2326 extern ulong3 __attribute__((overloadable))
2327     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y);
2328 #endif
2330 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2331 extern ulong4 __attribute__((overloadable))
2332     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y);
2333 #endif
2335 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2336 extern float __attribute__((overloadable))
2337     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2338 #endif
2340 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2341 extern float2 __attribute__((overloadable))
2342     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2343 #endif
2345 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2346 extern float3 __attribute__((overloadable))
2347     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2348 #endif
2350 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2351 extern float4 __attribute__((overloadable))
2352     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2353 #endif
2355 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2356 extern double __attribute__((overloadable))
2357     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2358 #endif
2360 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2361 extern double2 __attribute__((overloadable))
2362     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2363 #endif
2365 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2366 extern double3 __attribute__((overloadable))
2367     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2368 #endif
2370 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2371 extern double4 __attribute__((overloadable))
2372     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2373 #endif
2375 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2376 extern char __attribute__((overloadable))
2377     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2378 #endif
2380 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2381 extern char2 __attribute__((overloadable))
2382     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2383 #endif
2385 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2386 extern char3 __attribute__((overloadable))
2387     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2388 #endif
2390 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2391 extern char4 __attribute__((overloadable))
2392     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2393 #endif
2395 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2396 extern uchar __attribute__((overloadable))
2397     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2398 #endif
2400 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2401 extern uchar2 __attribute__((overloadable))
2402     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2403 #endif
2405 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2406 extern uchar3 __attribute__((overloadable))
2407     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2408 #endif
2410 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2411 extern uchar4 __attribute__((overloadable))
2412     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2413 #endif
2415 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2416 extern short __attribute__((overloadable))
2417     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2418 #endif
2420 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2421 extern short2 __attribute__((overloadable))
2422     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2423 #endif
2425 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2426 extern short3 __attribute__((overloadable))
2427     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2428 #endif
2430 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2431 extern short4 __attribute__((overloadable))
2432     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2433 #endif
2435 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2436 extern ushort __attribute__((overloadable))
2437     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2438 #endif
2440 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2441 extern ushort2 __attribute__((overloadable))
2442     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2443 #endif
2445 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2446 extern ushort3 __attribute__((overloadable))
2447     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2448 #endif
2450 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2451 extern ushort4 __attribute__((overloadable))
2452     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2453 #endif
2455 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2456 extern int __attribute__((overloadable))
2457     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2458 #endif
2460 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2461 extern int2 __attribute__((overloadable))
2462     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2463 #endif
2465 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2466 extern int3 __attribute__((overloadable))
2467     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2468 #endif
2470 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2471 extern int4 __attribute__((overloadable))
2472     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2473 #endif
2475 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2476 extern uint __attribute__((overloadable))
2477     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2478 #endif
2480 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2481 extern uint2 __attribute__((overloadable))
2482     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2483 #endif
2485 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2486 extern uint3 __attribute__((overloadable))
2487     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2488 #endif
2490 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2491 extern uint4 __attribute__((overloadable))
2492     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2493 #endif
2495 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2496 extern long __attribute__((overloadable))
2497     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2498 #endif
2500 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2501 extern long2 __attribute__((overloadable))
2502     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2503 #endif
2505 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2506 extern long3 __attribute__((overloadable))
2507     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2508 #endif
2510 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2511 extern long4 __attribute__((overloadable))
2512     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2513 #endif
2515 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2516 extern ulong __attribute__((overloadable))
2517     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2518 #endif
2520 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2521 extern ulong2 __attribute__((overloadable))
2522     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2523 #endif
2525 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2526 extern ulong3 __attribute__((overloadable))
2527     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2528 #endif
2530 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2531 extern ulong4 __attribute__((overloadable))
2532     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2533 #endif
2535 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2536 extern half __attribute__((overloadable))
2537     rsGetElementAt_half(rs_allocation a, uint32_t x);
2538 #endif
2540 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2541 extern half2 __attribute__((overloadable))
2542     rsGetElementAt_half2(rs_allocation a, uint32_t x);
2543 #endif
2545 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2546 extern half3 __attribute__((overloadable))
2547     rsGetElementAt_half3(rs_allocation a, uint32_t x);
2548 #endif
2550 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2551 extern half4 __attribute__((overloadable))
2552     rsGetElementAt_half4(rs_allocation a, uint32_t x);
2553 #endif
2555 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2556 extern half __attribute__((overloadable))
2557     rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y);
2558 #endif
2560 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2561 extern half2 __attribute__((overloadable))
2562     rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y);
2563 #endif
2565 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2566 extern half3 __attribute__((overloadable))
2567     rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y);
2568 #endif
2570 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2571 extern half4 __attribute__((overloadable))
2572     rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y);
2573 #endif
2575 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2576 extern half __attribute__((overloadable))
2577     rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2578 #endif
2580 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2581 extern half2 __attribute__((overloadable))
2582     rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2583 #endif
2585 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2586 extern half3 __attribute__((overloadable))
2587     rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2588 #endif
2590 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
2591 extern half4 __attribute__((overloadable))
2592     rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2593 #endif
2596  * rsGetElementAtYuv_uchar_U: Get the U component of an allocation of YUVs
2598  * Extracts the U component of a single YUV value from a 2D allocation of YUVs.
2600  * Inside an allocation, Y, U, and V components may be stored if different planes
2601  * and at different resolutions.  The x, y coordinates provided here are in the
2602  * dimensions of the Y plane.
2604  * See rsGetElementAtYuv_uchar_Y().
2605  */
2606 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2607 extern uchar __attribute__((overloadable))
2608     rsGetElementAtYuv_uchar_U(rs_allocation a, uint32_t x, uint32_t y);
2609 #endif
2612  * rsGetElementAtYuv_uchar_V: Get the V component of an allocation of YUVs
2614  * Extracts the V component of a single YUV value from a 2D allocation of YUVs.
2616  * Inside an allocation, Y, U, and V components may be stored if different planes
2617  * and at different resolutions.  The x, y coordinates provided here are in the
2618  * dimensions of the Y plane.
2620  * See rsGetElementAtYuv_uchar_Y().
2621  */
2622 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2623 extern uchar __attribute__((overloadable))
2624     rsGetElementAtYuv_uchar_V(rs_allocation a, uint32_t x, uint32_t y);
2625 #endif
2628  * rsGetElementAtYuv_uchar_Y: Get the Y component of an allocation of YUVs
2630  * Extracts the Y component of a single YUV value from a 2D allocation of YUVs.
2632  * Inside an allocation, Y, U, and V components may be stored if different planes
2633  * and at different resolutions.  The x, y coordinates provided here are in the
2634  * dimensions of the Y plane.
2636  * See rsGetElementAtYuv_uchar_U() and rsGetElementAtYuv_uchar_V().
2637  */
2638 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2639 extern uchar __attribute__((overloadable))
2640     rsGetElementAtYuv_uchar_Y(rs_allocation a, uint32_t x, uint32_t y);
2641 #endif
2644  * rsSample: Sample a value from a texture allocation
2646  * Fetches a value from a texture allocation in a way described by the sampler.
2648  * If your allocation is 1D, use the variant with float for location.  For 2D,
2649  * use the float2 variant.
2651  * See android.renderscript.Sampler for more details.
2653  * Parameters:
2654  *   a: Allocation to sample from.
2655  *   s: Sampler state.
2656  *   location: Location to sample from.
2657  *   lod: Mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used.
2658  */
2659 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
2660 extern float4 __attribute__((overloadable))
2661     rsSample(rs_allocation a, rs_sampler s, float location);
2662 #endif
2664 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
2665 extern float4 __attribute__((overloadable))
2666     rsSample(rs_allocation a, rs_sampler s, float location, float lod);
2667 #endif
2669 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
2670 extern float4 __attribute__((overloadable))
2671     rsSample(rs_allocation a, rs_sampler s, float2 location);
2672 #endif
2674 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
2675 extern float4 __attribute__((overloadable))
2676     rsSample(rs_allocation a, rs_sampler s, float2 location, float lod);
2677 #endif
2680  * rsSetElementAt: Set a cell of an allocation
2682  * This function stores a value into a single cell of an allocation.
2684  * When storing into a three dimensional allocations, use the x, y, z variant.
2685  * Similarly, use the x, y variant for two dimensional allocations and x for
2686  * the mono dimensional allocations.
2688  * This function has two styles.  One passes the value to be stored using a void*,
2689  * the other has the actual value as an argument, e.g. rsSetElementAt() vs.
2690  * rsSetElementAt_int4().  For primitive types, always use the latter as it is
2691  * more efficient.
2693  * See also rsGetElementAt().
2694  */
2695 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2696 extern void __attribute__((overloadable))
2697     rsSetElementAt(rs_allocation a, void* ptr, uint32_t x);
2698 #endif
2700 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2701 extern void __attribute__((overloadable))
2702     rsSetElementAt(rs_allocation a, void* ptr, uint32_t x, uint32_t y);
2703 #endif
2705 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2706 extern void __attribute__((overloadable))
2707     rsSetElementAt_float(rs_allocation a, float val, uint32_t x);
2708 #endif
2710 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2711 extern void __attribute__((overloadable))
2712     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x);
2713 #endif
2715 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2716 extern void __attribute__((overloadable))
2717     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x);
2718 #endif
2720 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2721 extern void __attribute__((overloadable))
2722     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x);
2723 #endif
2725 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2726 extern void __attribute__((overloadable))
2727     rsSetElementAt_double(rs_allocation a, double val, uint32_t x);
2728 #endif
2730 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2731 extern void __attribute__((overloadable))
2732     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x);
2733 #endif
2735 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2736 extern void __attribute__((overloadable))
2737     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x);
2738 #endif
2740 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2741 extern void __attribute__((overloadable))
2742     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x);
2743 #endif
2745 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2746 extern void __attribute__((overloadable))
2747     rsSetElementAt_char(rs_allocation a, char val, uint32_t x);
2748 #endif
2750 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2751 extern void __attribute__((overloadable))
2752     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x);
2753 #endif
2755 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2756 extern void __attribute__((overloadable))
2757     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x);
2758 #endif
2760 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2761 extern void __attribute__((overloadable))
2762     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x);
2763 #endif
2765 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2766 extern void __attribute__((overloadable))
2767     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x);
2768 #endif
2770 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2771 extern void __attribute__((overloadable))
2772     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x);
2773 #endif
2775 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2776 extern void __attribute__((overloadable))
2777     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x);
2778 #endif
2780 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2781 extern void __attribute__((overloadable))
2782     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x);
2783 #endif
2785 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2786 extern void __attribute__((overloadable))
2787     rsSetElementAt_short(rs_allocation a, short val, uint32_t x);
2788 #endif
2790 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2791 extern void __attribute__((overloadable))
2792     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x);
2793 #endif
2795 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2796 extern void __attribute__((overloadable))
2797     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x);
2798 #endif
2800 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2801 extern void __attribute__((overloadable))
2802     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x);
2803 #endif
2805 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2806 extern void __attribute__((overloadable))
2807     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x);
2808 #endif
2810 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2811 extern void __attribute__((overloadable))
2812     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x);
2813 #endif
2815 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2816 extern void __attribute__((overloadable))
2817     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x);
2818 #endif
2820 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2821 extern void __attribute__((overloadable))
2822     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x);
2823 #endif
2825 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2826 extern void __attribute__((overloadable))
2827     rsSetElementAt_int(rs_allocation a, int val, uint32_t x);
2828 #endif
2830 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2831 extern void __attribute__((overloadable))
2832     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x);
2833 #endif
2835 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2836 extern void __attribute__((overloadable))
2837     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x);
2838 #endif
2840 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2841 extern void __attribute__((overloadable))
2842     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x);
2843 #endif
2845 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2846 extern void __attribute__((overloadable))
2847     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x);
2848 #endif
2850 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2851 extern void __attribute__((overloadable))
2852     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x);
2853 #endif
2855 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2856 extern void __attribute__((overloadable))
2857     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x);
2858 #endif
2860 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2861 extern void __attribute__((overloadable))
2862     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x);
2863 #endif
2865 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2866 extern void __attribute__((overloadable))
2867     rsSetElementAt_long(rs_allocation a, long val, uint32_t x);
2868 #endif
2870 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2871 extern void __attribute__((overloadable))
2872     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x);
2873 #endif
2875 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2876 extern void __attribute__((overloadable))
2877     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x);
2878 #endif
2880 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2881 extern void __attribute__((overloadable))
2882     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x);
2883 #endif
2885 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2886 extern void __attribute__((overloadable))
2887     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x);
2888 #endif
2890 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2891 extern void __attribute__((overloadable))
2892     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x);
2893 #endif
2895 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2896 extern void __attribute__((overloadable))
2897     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x);
2898 #endif
2900 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2901 extern void __attribute__((overloadable))
2902     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x);
2903 #endif
2905 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2906 extern void __attribute__((overloadable))
2907     rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y);
2908 #endif
2910 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2911 extern void __attribute__((overloadable))
2912     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
2913 #endif
2915 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2916 extern void __attribute__((overloadable))
2917     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
2918 #endif
2920 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2921 extern void __attribute__((overloadable))
2922     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
2923 #endif
2925 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2926 extern void __attribute__((overloadable))
2927     rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y);
2928 #endif
2930 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2931 extern void __attribute__((overloadable))
2932     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
2933 #endif
2935 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2936 extern void __attribute__((overloadable))
2937     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
2938 #endif
2940 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2941 extern void __attribute__((overloadable))
2942     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
2943 #endif
2945 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2946 extern void __attribute__((overloadable))
2947     rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y);
2948 #endif
2950 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2951 extern void __attribute__((overloadable))
2952     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
2953 #endif
2955 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2956 extern void __attribute__((overloadable))
2957     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
2958 #endif
2960 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2961 extern void __attribute__((overloadable))
2962     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
2963 #endif
2965 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2966 extern void __attribute__((overloadable))
2967     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y);
2968 #endif
2970 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2971 extern void __attribute__((overloadable))
2972     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
2973 #endif
2975 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2976 extern void __attribute__((overloadable))
2977     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
2978 #endif
2980 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2981 extern void __attribute__((overloadable))
2982     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
2983 #endif
2985 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2986 extern void __attribute__((overloadable))
2987     rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y);
2988 #endif
2990 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2991 extern void __attribute__((overloadable))
2992     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
2993 #endif
2995 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
2996 extern void __attribute__((overloadable))
2997     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
2998 #endif
3000 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3001 extern void __attribute__((overloadable))
3002     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
3003 #endif
3005 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3006 extern void __attribute__((overloadable))
3007     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y);
3008 #endif
3010 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3011 extern void __attribute__((overloadable))
3012     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
3013 #endif
3015 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3016 extern void __attribute__((overloadable))
3017     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
3018 #endif
3020 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3021 extern void __attribute__((overloadable))
3022     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
3023 #endif
3025 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3026 extern void __attribute__((overloadable))
3027     rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y);
3028 #endif
3030 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3031 extern void __attribute__((overloadable))
3032     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
3033 #endif
3035 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3036 extern void __attribute__((overloadable))
3037     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
3038 #endif
3040 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3041 extern void __attribute__((overloadable))
3042     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
3043 #endif
3045 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3046 extern void __attribute__((overloadable))
3047     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y);
3048 #endif
3050 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3051 extern void __attribute__((overloadable))
3052     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
3053 #endif
3055 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3056 extern void __attribute__((overloadable))
3057     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
3058 #endif
3060 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3061 extern void __attribute__((overloadable))
3062     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
3063 #endif
3065 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3066 extern void __attribute__((overloadable))
3067     rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y);
3068 #endif
3070 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3071 extern void __attribute__((overloadable))
3072     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
3073 #endif
3075 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3076 extern void __attribute__((overloadable))
3077     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
3078 #endif
3080 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3081 extern void __attribute__((overloadable))
3082     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
3083 #endif
3085 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3086 extern void __attribute__((overloadable))
3087     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y);
3088 #endif
3090 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3091 extern void __attribute__((overloadable))
3092     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
3093 #endif
3095 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3096 extern void __attribute__((overloadable))
3097     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
3098 #endif
3100 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3101 extern void __attribute__((overloadable))
3102     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
3103 #endif
3105 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3106 extern void __attribute__((overloadable))
3107     rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y, uint32_t z);
3108 #endif
3110 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3111 extern void __attribute__((overloadable))
3112     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
3113 #endif
3115 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3116 extern void __attribute__((overloadable))
3117     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
3118 #endif
3120 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3121 extern void __attribute__((overloadable))
3122     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
3123 #endif
3125 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3126 extern void __attribute__((overloadable))
3127     rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y, uint32_t z);
3128 #endif
3130 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3131 extern void __attribute__((overloadable))
3132     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
3133 #endif
3135 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3136 extern void __attribute__((overloadable))
3137     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
3138 #endif
3140 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3141 extern void __attribute__((overloadable))
3142     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
3143 #endif
3145 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3146 extern void __attribute__((overloadable))
3147     rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y, uint32_t z);
3148 #endif
3150 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3151 extern void __attribute__((overloadable))
3152     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
3153 #endif
3155 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3156 extern void __attribute__((overloadable))
3157     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
3158 #endif
3160 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3161 extern void __attribute__((overloadable))
3162     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
3163 #endif
3165 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3166 extern void __attribute__((overloadable))
3167     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y, uint32_t z);
3168 #endif
3170 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3171 extern void __attribute__((overloadable))
3172     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
3173 #endif
3175 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3176 extern void __attribute__((overloadable))
3177     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
3178 #endif
3180 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3181 extern void __attribute__((overloadable))
3182     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
3183 #endif
3185 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3186 extern void __attribute__((overloadable))
3187     rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y, uint32_t z);
3188 #endif
3190 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3191 extern void __attribute__((overloadable))
3192     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
3193 #endif
3195 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3196 extern void __attribute__((overloadable))
3197     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
3198 #endif
3200 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3201 extern void __attribute__((overloadable))
3202     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
3203 #endif
3205 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3206 extern void __attribute__((overloadable))
3207     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y, uint32_t z);
3208 #endif
3210 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3211 extern void __attribute__((overloadable))
3212     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
3213 #endif
3215 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3216 extern void __attribute__((overloadable))
3217     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
3218 #endif
3220 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3221 extern void __attribute__((overloadable))
3222     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
3223 #endif
3225 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3226 extern void __attribute__((overloadable))
3227     rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y, uint32_t z);
3228 #endif
3230 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3231 extern void __attribute__((overloadable))
3232     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
3233 #endif
3235 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3236 extern void __attribute__((overloadable))
3237     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
3238 #endif
3240 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3241 extern void __attribute__((overloadable))
3242     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
3243 #endif
3245 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3246 extern void __attribute__((overloadable))
3247     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y, uint32_t z);
3248 #endif
3250 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3251 extern void __attribute__((overloadable))
3252     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
3253 #endif
3255 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3256 extern void __attribute__((overloadable))
3257     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
3258 #endif
3260 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3261 extern void __attribute__((overloadable))
3262     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
3263 #endif
3265 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3266 extern void __attribute__((overloadable))
3267     rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y, uint32_t z);
3268 #endif
3270 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3271 extern void __attribute__((overloadable))
3272     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
3273 #endif
3275 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3276 extern void __attribute__((overloadable))
3277     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
3278 #endif
3280 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3281 extern void __attribute__((overloadable))
3282     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
3283 #endif
3285 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3286 extern void __attribute__((overloadable))
3287     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y, uint32_t z);
3288 #endif
3290 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3291 extern void __attribute__((overloadable))
3292     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
3293 #endif
3295 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3296 extern void __attribute__((overloadable))
3297     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
3298 #endif
3300 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
3301 extern void __attribute__((overloadable))
3302     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
3303 #endif
3305 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3306 extern void __attribute__((overloadable))
3307     rsSetElementAt_half(rs_allocation a, half val, uint32_t x);
3308 #endif
3310 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3311 extern void __attribute__((overloadable))
3312     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x);
3313 #endif
3315 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3316 extern void __attribute__((overloadable))
3317     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x);
3318 #endif
3320 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3321 extern void __attribute__((overloadable))
3322     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x);
3323 #endif
3325 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3326 extern void __attribute__((overloadable))
3327     rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y);
3328 #endif
3330 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3331 extern void __attribute__((overloadable))
3332     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y);
3333 #endif
3335 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3336 extern void __attribute__((overloadable))
3337     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y);
3338 #endif
3340 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3341 extern void __attribute__((overloadable))
3342     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y);
3343 #endif
3345 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3346 extern void __attribute__((overloadable))
3347     rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y, uint32_t z);
3348 #endif
3350 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3351 extern void __attribute__((overloadable))
3352     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y, uint32_t z);
3353 #endif
3355 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3356 extern void __attribute__((overloadable))
3357     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y, uint32_t z);
3358 #endif
3360 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
3361 extern void __attribute__((overloadable))
3362     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y, uint32_t z);
3363 #endif
3365 #endif // RENDERSCRIPT_RS_ALLOCATION_DATA_RSH