1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17// Don't edit this file!  It is auto-generated by frameworks/rs/api/generate.sh.
18
19/*
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 */
35
36#ifndef RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
37#define RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
38
39/*
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 * Parameters:
54 *   dstAlloc: Allocation to copy cells into.
55 *   dstOff: Offset in the destination of the first cell to be copied into.
56 *   dstMip: Mip level in the destination allocation.  0 if mip mapping is not used.
57 *   count: Number of cells to be copied.
58 *   srcAlloc: Source allocation.
59 *   srcOff: Offset in the source of the first cell to be copied.
60 *   srcMip: Mip level in the source allocation.  0 if mip mapping is not used.
61 */
62#if (defined(RS_VERSION) && (RS_VERSION >= 14))
63extern void __attribute__((overloadable))
64    rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count,
65                            rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip);
66#endif
67
68/*
69 * rsAllocationCopy2DRange: Copy a rectangular region of cells between allocations
70 *
71 * Copies a rectangular region of cells from one allocation to another.
72 * (width * heigth) cells are copied.
73 *
74 * The two allocations must be different.  Using this function to copy whithin
75 * the same allocation yields undefined results.
76 *
77 * The function does not validate whether the the source or destination region
78 * exceeds the size of its respective allocation.  Be careful!
79 *
80 * This function should only be called between 2D allocations.  Calling it
81 * on other allocations is undefined.
82 *
83 * Parameters:
84 *   dstAlloc: Allocation to copy cells into.
85 *   dstXoff: X offset in the destination of the region to be set.
86 *   dstYoff: Y offset in the destination of the region to be set.
87 *   dstMip: Mip level in the destination allocation.  0 if mip mapping is not used.
88 *   dstFace: Cubemap face of the destination allocation.  Ignored for allocations that aren't cubemaps.
89 *   width: Width of the incoming region to update.
90 *   height: Height of the incoming region to update.
91 *   srcAlloc: Source allocation.
92 *   srcXoff: X offset in the source.
93 *   srcYoff: Y offset in the source.
94 *   srcMip: Mip level in the source allocation.  0 if mip mapping is not used.
95 *   srcFace: Cubemap face of the source allocation.  Ignored for allocations that aren't cubemaps.
96 */
97#if (defined(RS_VERSION) && (RS_VERSION >= 14))
98extern void __attribute__((overloadable))
99    rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff,
100                            uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width,
101                            uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff,
102                            uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace);
103#endif
104
105/*
106 * rsAllocationVLoadX: Get a vector from an allocation of scalars
107 *
108 * This function returns a vector composed of successive cells of the allocation.
109 * It assumes that the allocation contains scalars.
110 *
111 * The "X" in the name indicates that successive values are extracted by
112 * increasing the X index.  There are currently no functions to get successive
113 * values incrementing other dimensions.  Use multiple calls to rsGetElementAt()
114 * instead.
115 *
116 * For example, when calling rsAllocationVLoadX_int4(a, 20, 30), an int4 composed
117 * of a[20, 30], a[21, 30], a[22, 30], and a[23, 30] is returned.
118 *
119 * When retrieving from a three dimensional allocations, use the x, y, z variant.
120 * Similarly, use the x, y variant for two dimensional allocations and x for the
121 * mono dimensional allocations.
122 *
123 * For efficiency, this function does not validate the inputs.  Trying to wrap
124 * the X index, exceeding the size of the allocation, or using indices incompatible
125 * with the dimensionality of the allocation yields undefined results.
126 *
127 * See also rsAllocationVStoreX().
128 *
129 * Parameters:
130 *   a: Allocation to get the data from.
131 *   x: X offset in the allocation of the first cell to be copied from.
132 *   y: Y offset in the allocation of the first cell to be copied from.
133 *   z: Z offset in the allocation of the first cell to be copied from.
134 */
135#if (defined(RS_VERSION) && (RS_VERSION >= 22))
136extern float2 __attribute__((overloadable))
137    rsAllocationVLoadX_float2(rs_allocation a, uint32_t x);
138#endif
139
140#if (defined(RS_VERSION) && (RS_VERSION >= 22))
141extern float3 __attribute__((overloadable))
142    rsAllocationVLoadX_float3(rs_allocation a, uint32_t x);
143#endif
144
145#if (defined(RS_VERSION) && (RS_VERSION >= 22))
146extern float4 __attribute__((overloadable))
147    rsAllocationVLoadX_float4(rs_allocation a, uint32_t x);
148#endif
149
150#if (defined(RS_VERSION) && (RS_VERSION >= 22))
151extern double2 __attribute__((overloadable))
152    rsAllocationVLoadX_double2(rs_allocation a, uint32_t x);
153#endif
154
155#if (defined(RS_VERSION) && (RS_VERSION >= 22))
156extern double3 __attribute__((overloadable))
157    rsAllocationVLoadX_double3(rs_allocation a, uint32_t x);
158#endif
159
160#if (defined(RS_VERSION) && (RS_VERSION >= 22))
161extern double4 __attribute__((overloadable))
162    rsAllocationVLoadX_double4(rs_allocation a, uint32_t x);
163#endif
164
165#if (defined(RS_VERSION) && (RS_VERSION >= 22))
166extern char2 __attribute__((overloadable))
167    rsAllocationVLoadX_char2(rs_allocation a, uint32_t x);
168#endif
169
170#if (defined(RS_VERSION) && (RS_VERSION >= 22))
171extern char3 __attribute__((overloadable))
172    rsAllocationVLoadX_char3(rs_allocation a, uint32_t x);
173#endif
174
175#if (defined(RS_VERSION) && (RS_VERSION >= 22))
176extern char4 __attribute__((overloadable))
177    rsAllocationVLoadX_char4(rs_allocation a, uint32_t x);
178#endif
179
180#if (defined(RS_VERSION) && (RS_VERSION >= 22))
181extern uchar2 __attribute__((overloadable))
182    rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x);
183#endif
184
185#if (defined(RS_VERSION) && (RS_VERSION >= 22))
186extern uchar3 __attribute__((overloadable))
187    rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x);
188#endif
189
190#if (defined(RS_VERSION) && (RS_VERSION >= 22))
191extern uchar4 __attribute__((overloadable))
192    rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x);
193#endif
194
195#if (defined(RS_VERSION) && (RS_VERSION >= 22))
196extern short2 __attribute__((overloadable))
197    rsAllocationVLoadX_short2(rs_allocation a, uint32_t x);
198#endif
199
200#if (defined(RS_VERSION) && (RS_VERSION >= 22))
201extern short3 __attribute__((overloadable))
202    rsAllocationVLoadX_short3(rs_allocation a, uint32_t x);
203#endif
204
205#if (defined(RS_VERSION) && (RS_VERSION >= 22))
206extern short4 __attribute__((overloadable))
207    rsAllocationVLoadX_short4(rs_allocation a, uint32_t x);
208#endif
209
210#if (defined(RS_VERSION) && (RS_VERSION >= 22))
211extern ushort2 __attribute__((overloadable))
212    rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x);
213#endif
214
215#if (defined(RS_VERSION) && (RS_VERSION >= 22))
216extern ushort3 __attribute__((overloadable))
217    rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x);
218#endif
219
220#if (defined(RS_VERSION) && (RS_VERSION >= 22))
221extern ushort4 __attribute__((overloadable))
222    rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x);
223#endif
224
225#if (defined(RS_VERSION) && (RS_VERSION >= 22))
226extern int2 __attribute__((overloadable))
227    rsAllocationVLoadX_int2(rs_allocation a, uint32_t x);
228#endif
229
230#if (defined(RS_VERSION) && (RS_VERSION >= 22))
231extern int3 __attribute__((overloadable))
232    rsAllocationVLoadX_int3(rs_allocation a, uint32_t x);
233#endif
234
235#if (defined(RS_VERSION) && (RS_VERSION >= 22))
236extern int4 __attribute__((overloadable))
237    rsAllocationVLoadX_int4(rs_allocation a, uint32_t x);
238#endif
239
240#if (defined(RS_VERSION) && (RS_VERSION >= 22))
241extern uint2 __attribute__((overloadable))
242    rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x);
243#endif
244
245#if (defined(RS_VERSION) && (RS_VERSION >= 22))
246extern uint3 __attribute__((overloadable))
247    rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x);
248#endif
249
250#if (defined(RS_VERSION) && (RS_VERSION >= 22))
251extern uint4 __attribute__((overloadable))
252    rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x);
253#endif
254
255#if (defined(RS_VERSION) && (RS_VERSION >= 22))
256extern long2 __attribute__((overloadable))
257    rsAllocationVLoadX_long2(rs_allocation a, uint32_t x);
258#endif
259
260#if (defined(RS_VERSION) && (RS_VERSION >= 22))
261extern long3 __attribute__((overloadable))
262    rsAllocationVLoadX_long3(rs_allocation a, uint32_t x);
263#endif
264
265#if (defined(RS_VERSION) && (RS_VERSION >= 22))
266extern long4 __attribute__((overloadable))
267    rsAllocationVLoadX_long4(rs_allocation a, uint32_t x);
268#endif
269
270#if (defined(RS_VERSION) && (RS_VERSION >= 22))
271extern ulong2 __attribute__((overloadable))
272    rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x);
273#endif
274
275#if (defined(RS_VERSION) && (RS_VERSION >= 22))
276extern ulong3 __attribute__((overloadable))
277    rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x);
278#endif
279
280#if (defined(RS_VERSION) && (RS_VERSION >= 22))
281extern ulong4 __attribute__((overloadable))
282    rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x);
283#endif
284
285#if (defined(RS_VERSION) && (RS_VERSION >= 22))
286extern float2 __attribute__((overloadable))
287    rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y);
288#endif
289
290#if (defined(RS_VERSION) && (RS_VERSION >= 22))
291extern float3 __attribute__((overloadable))
292    rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y);
293#endif
294
295#if (defined(RS_VERSION) && (RS_VERSION >= 22))
296extern float4 __attribute__((overloadable))
297    rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y);
298#endif
299
300#if (defined(RS_VERSION) && (RS_VERSION >= 22))
301extern double2 __attribute__((overloadable))
302    rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y);
303#endif
304
305#if (defined(RS_VERSION) && (RS_VERSION >= 22))
306extern double3 __attribute__((overloadable))
307    rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y);
308#endif
309
310#if (defined(RS_VERSION) && (RS_VERSION >= 22))
311extern double4 __attribute__((overloadable))
312    rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y);
313#endif
314
315#if (defined(RS_VERSION) && (RS_VERSION >= 22))
316extern char2 __attribute__((overloadable))
317    rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y);
318#endif
319
320#if (defined(RS_VERSION) && (RS_VERSION >= 22))
321extern char3 __attribute__((overloadable))
322    rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y);
323#endif
324
325#if (defined(RS_VERSION) && (RS_VERSION >= 22))
326extern char4 __attribute__((overloadable))
327    rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y);
328#endif
329
330#if (defined(RS_VERSION) && (RS_VERSION >= 22))
331extern uchar2 __attribute__((overloadable))
332    rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y);
333#endif
334
335#if (defined(RS_VERSION) && (RS_VERSION >= 22))
336extern uchar3 __attribute__((overloadable))
337    rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y);
338#endif
339
340#if (defined(RS_VERSION) && (RS_VERSION >= 22))
341extern uchar4 __attribute__((overloadable))
342    rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y);
343#endif
344
345#if (defined(RS_VERSION) && (RS_VERSION >= 22))
346extern short2 __attribute__((overloadable))
347    rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y);
348#endif
349
350#if (defined(RS_VERSION) && (RS_VERSION >= 22))
351extern short3 __attribute__((overloadable))
352    rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y);
353#endif
354
355#if (defined(RS_VERSION) && (RS_VERSION >= 22))
356extern short4 __attribute__((overloadable))
357    rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y);
358#endif
359
360#if (defined(RS_VERSION) && (RS_VERSION >= 22))
361extern ushort2 __attribute__((overloadable))
362    rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y);
363#endif
364
365#if (defined(RS_VERSION) && (RS_VERSION >= 22))
366extern ushort3 __attribute__((overloadable))
367    rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y);
368#endif
369
370#if (defined(RS_VERSION) && (RS_VERSION >= 22))
371extern ushort4 __attribute__((overloadable))
372    rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y);
373#endif
374
375#if (defined(RS_VERSION) && (RS_VERSION >= 22))
376extern int2 __attribute__((overloadable))
377    rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y);
378#endif
379
380#if (defined(RS_VERSION) && (RS_VERSION >= 22))
381extern int3 __attribute__((overloadable))
382    rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y);
383#endif
384
385#if (defined(RS_VERSION) && (RS_VERSION >= 22))
386extern int4 __attribute__((overloadable))
387    rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y);
388#endif
389
390#if (defined(RS_VERSION) && (RS_VERSION >= 22))
391extern uint2 __attribute__((overloadable))
392    rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y);
393#endif
394
395#if (defined(RS_VERSION) && (RS_VERSION >= 22))
396extern uint3 __attribute__((overloadable))
397    rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y);
398#endif
399
400#if (defined(RS_VERSION) && (RS_VERSION >= 22))
401extern uint4 __attribute__((overloadable))
402    rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y);
403#endif
404
405#if (defined(RS_VERSION) && (RS_VERSION >= 22))
406extern long2 __attribute__((overloadable))
407    rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y);
408#endif
409
410#if (defined(RS_VERSION) && (RS_VERSION >= 22))
411extern long3 __attribute__((overloadable))
412    rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y);
413#endif
414
415#if (defined(RS_VERSION) && (RS_VERSION >= 22))
416extern long4 __attribute__((overloadable))
417    rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y);
418#endif
419
420#if (defined(RS_VERSION) && (RS_VERSION >= 22))
421extern ulong2 __attribute__((overloadable))
422    rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y);
423#endif
424
425#if (defined(RS_VERSION) && (RS_VERSION >= 22))
426extern ulong3 __attribute__((overloadable))
427    rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y);
428#endif
429
430#if (defined(RS_VERSION) && (RS_VERSION >= 22))
431extern ulong4 __attribute__((overloadable))
432    rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y);
433#endif
434
435#if (defined(RS_VERSION) && (RS_VERSION >= 22))
436extern float2 __attribute__((overloadable))
437    rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
438#endif
439
440#if (defined(RS_VERSION) && (RS_VERSION >= 22))
441extern float3 __attribute__((overloadable))
442    rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
443#endif
444
445#if (defined(RS_VERSION) && (RS_VERSION >= 22))
446extern float4 __attribute__((overloadable))
447    rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
448#endif
449
450#if (defined(RS_VERSION) && (RS_VERSION >= 22))
451extern double2 __attribute__((overloadable))
452    rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
453#endif
454
455#if (defined(RS_VERSION) && (RS_VERSION >= 22))
456extern double3 __attribute__((overloadable))
457    rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
458#endif
459
460#if (defined(RS_VERSION) && (RS_VERSION >= 22))
461extern double4 __attribute__((overloadable))
462    rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
463#endif
464
465#if (defined(RS_VERSION) && (RS_VERSION >= 22))
466extern char2 __attribute__((overloadable))
467    rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
468#endif
469
470#if (defined(RS_VERSION) && (RS_VERSION >= 22))
471extern char3 __attribute__((overloadable))
472    rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
473#endif
474
475#if (defined(RS_VERSION) && (RS_VERSION >= 22))
476extern char4 __attribute__((overloadable))
477    rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
478#endif
479
480#if (defined(RS_VERSION) && (RS_VERSION >= 22))
481extern uchar2 __attribute__((overloadable))
482    rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
483#endif
484
485#if (defined(RS_VERSION) && (RS_VERSION >= 22))
486extern uchar3 __attribute__((overloadable))
487    rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
488#endif
489
490#if (defined(RS_VERSION) && (RS_VERSION >= 22))
491extern uchar4 __attribute__((overloadable))
492    rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
493#endif
494
495#if (defined(RS_VERSION) && (RS_VERSION >= 22))
496extern short2 __attribute__((overloadable))
497    rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
498#endif
499
500#if (defined(RS_VERSION) && (RS_VERSION >= 22))
501extern short3 __attribute__((overloadable))
502    rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
503#endif
504
505#if (defined(RS_VERSION) && (RS_VERSION >= 22))
506extern short4 __attribute__((overloadable))
507    rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
508#endif
509
510#if (defined(RS_VERSION) && (RS_VERSION >= 22))
511extern ushort2 __attribute__((overloadable))
512    rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
513#endif
514
515#if (defined(RS_VERSION) && (RS_VERSION >= 22))
516extern ushort3 __attribute__((overloadable))
517    rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
518#endif
519
520#if (defined(RS_VERSION) && (RS_VERSION >= 22))
521extern ushort4 __attribute__((overloadable))
522    rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
523#endif
524
525#if (defined(RS_VERSION) && (RS_VERSION >= 22))
526extern int2 __attribute__((overloadable))
527    rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
528#endif
529
530#if (defined(RS_VERSION) && (RS_VERSION >= 22))
531extern int3 __attribute__((overloadable))
532    rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
533#endif
534
535#if (defined(RS_VERSION) && (RS_VERSION >= 22))
536extern int4 __attribute__((overloadable))
537    rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
538#endif
539
540#if (defined(RS_VERSION) && (RS_VERSION >= 22))
541extern uint2 __attribute__((overloadable))
542    rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
543#endif
544
545#if (defined(RS_VERSION) && (RS_VERSION >= 22))
546extern uint3 __attribute__((overloadable))
547    rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
548#endif
549
550#if (defined(RS_VERSION) && (RS_VERSION >= 22))
551extern uint4 __attribute__((overloadable))
552    rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
553#endif
554
555#if (defined(RS_VERSION) && (RS_VERSION >= 22))
556extern long2 __attribute__((overloadable))
557    rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
558#endif
559
560#if (defined(RS_VERSION) && (RS_VERSION >= 22))
561extern long3 __attribute__((overloadable))
562    rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
563#endif
564
565#if (defined(RS_VERSION) && (RS_VERSION >= 22))
566extern long4 __attribute__((overloadable))
567    rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
568#endif
569
570#if (defined(RS_VERSION) && (RS_VERSION >= 22))
571extern ulong2 __attribute__((overloadable))
572    rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
573#endif
574
575#if (defined(RS_VERSION) && (RS_VERSION >= 22))
576extern ulong3 __attribute__((overloadable))
577    rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
578#endif
579
580#if (defined(RS_VERSION) && (RS_VERSION >= 22))
581extern ulong4 __attribute__((overloadable))
582    rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
583#endif
584
585/*
586 * rsAllocationVStoreX: Store a vector into an allocation of scalars
587 *
588 * This function stores the entries of a vector into successive cells of an allocation.
589 * It assumes that the allocation contains scalars.
590 *
591 * The "X" in the name indicates that successive values are stored by increasing
592 * the X index.  There are currently no functions to store successive values
593 * incrementing other dimensions.  Use multiple calls to rsSetElementAt() instead.
594 *
595 * For example, when calling rsAllocationVStoreX_int3(a, v, 20, 30), v.x is stored
596 * at a[20, 30], v.y at a[21, 30], and v.z at a[22, 30].
597 *
598 * When storing into a three dimensional allocations, use the x, y, z variant.
599 * Similarly, use the x, y variant for two dimensional allocations and x for the
600 * mono dimensional allocations.
601 *
602 * For efficiency, this function does not validate the inputs.  Trying to wrap the
603 * X index, exceeding the size of the allocation, or using indexes incompatible
604 * with the dimensionality of the allocation yiels undefined results.
605 *
606 * See also rsAllocationVLoadX().
607 *
608 * Parameters:
609 *   a: Allocation to store the data into.
610 *   val: Value to be stored.
611 *   x: X offset in the allocation of the first cell to be copied into.
612 *   y: Y offset in the allocation of the first cell to be copied into.
613 *   z: Z offset in the allocation of the first cell to be copied into.
614 */
615#if (defined(RS_VERSION) && (RS_VERSION >= 22))
616extern void __attribute__((overloadable))
617    rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x);
618#endif
619
620#if (defined(RS_VERSION) && (RS_VERSION >= 22))
621extern void __attribute__((overloadable))
622    rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x);
623#endif
624
625#if (defined(RS_VERSION) && (RS_VERSION >= 22))
626extern void __attribute__((overloadable))
627    rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x);
628#endif
629
630#if (defined(RS_VERSION) && (RS_VERSION >= 22))
631extern void __attribute__((overloadable))
632    rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x);
633#endif
634
635#if (defined(RS_VERSION) && (RS_VERSION >= 22))
636extern void __attribute__((overloadable))
637    rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x);
638#endif
639
640#if (defined(RS_VERSION) && (RS_VERSION >= 22))
641extern void __attribute__((overloadable))
642    rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x);
643#endif
644
645#if (defined(RS_VERSION) && (RS_VERSION >= 22))
646extern void __attribute__((overloadable))
647    rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x);
648#endif
649
650#if (defined(RS_VERSION) && (RS_VERSION >= 22))
651extern void __attribute__((overloadable))
652    rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x);
653#endif
654
655#if (defined(RS_VERSION) && (RS_VERSION >= 22))
656extern void __attribute__((overloadable))
657    rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x);
658#endif
659
660#if (defined(RS_VERSION) && (RS_VERSION >= 22))
661extern void __attribute__((overloadable))
662    rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x);
663#endif
664
665#if (defined(RS_VERSION) && (RS_VERSION >= 22))
666extern void __attribute__((overloadable))
667    rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x);
668#endif
669
670#if (defined(RS_VERSION) && (RS_VERSION >= 22))
671extern void __attribute__((overloadable))
672    rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x);
673#endif
674
675#if (defined(RS_VERSION) && (RS_VERSION >= 22))
676extern void __attribute__((overloadable))
677    rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x);
678#endif
679
680#if (defined(RS_VERSION) && (RS_VERSION >= 22))
681extern void __attribute__((overloadable))
682    rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x);
683#endif
684
685#if (defined(RS_VERSION) && (RS_VERSION >= 22))
686extern void __attribute__((overloadable))
687    rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x);
688#endif
689
690#if (defined(RS_VERSION) && (RS_VERSION >= 22))
691extern void __attribute__((overloadable))
692    rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x);
693#endif
694
695#if (defined(RS_VERSION) && (RS_VERSION >= 22))
696extern void __attribute__((overloadable))
697    rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x);
698#endif
699
700#if (defined(RS_VERSION) && (RS_VERSION >= 22))
701extern void __attribute__((overloadable))
702    rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x);
703#endif
704
705#if (defined(RS_VERSION) && (RS_VERSION >= 22))
706extern void __attribute__((overloadable))
707    rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x);
708#endif
709
710#if (defined(RS_VERSION) && (RS_VERSION >= 22))
711extern void __attribute__((overloadable))
712    rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x);
713#endif
714
715#if (defined(RS_VERSION) && (RS_VERSION >= 22))
716extern void __attribute__((overloadable))
717    rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x);
718#endif
719
720#if (defined(RS_VERSION) && (RS_VERSION >= 22))
721extern void __attribute__((overloadable))
722    rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x);
723#endif
724
725#if (defined(RS_VERSION) && (RS_VERSION >= 22))
726extern void __attribute__((overloadable))
727    rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x);
728#endif
729
730#if (defined(RS_VERSION) && (RS_VERSION >= 22))
731extern void __attribute__((overloadable))
732    rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x);
733#endif
734
735#if (defined(RS_VERSION) && (RS_VERSION >= 22))
736extern void __attribute__((overloadable))
737    rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x);
738#endif
739
740#if (defined(RS_VERSION) && (RS_VERSION >= 22))
741extern void __attribute__((overloadable))
742    rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x);
743#endif
744
745#if (defined(RS_VERSION) && (RS_VERSION >= 22))
746extern void __attribute__((overloadable))
747    rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x);
748#endif
749
750#if (defined(RS_VERSION) && (RS_VERSION >= 22))
751extern void __attribute__((overloadable))
752    rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x);
753#endif
754
755#if (defined(RS_VERSION) && (RS_VERSION >= 22))
756extern void __attribute__((overloadable))
757    rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x);
758#endif
759
760#if (defined(RS_VERSION) && (RS_VERSION >= 22))
761extern void __attribute__((overloadable))
762    rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x);
763#endif
764
765#if (defined(RS_VERSION) && (RS_VERSION >= 22))
766extern void __attribute__((overloadable))
767    rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
768#endif
769
770#if (defined(RS_VERSION) && (RS_VERSION >= 22))
771extern void __attribute__((overloadable))
772    rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
773#endif
774
775#if (defined(RS_VERSION) && (RS_VERSION >= 22))
776extern void __attribute__((overloadable))
777    rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
778#endif
779
780#if (defined(RS_VERSION) && (RS_VERSION >= 22))
781extern void __attribute__((overloadable))
782    rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
783#endif
784
785#if (defined(RS_VERSION) && (RS_VERSION >= 22))
786extern void __attribute__((overloadable))
787    rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
788#endif
789
790#if (defined(RS_VERSION) && (RS_VERSION >= 22))
791extern void __attribute__((overloadable))
792    rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
793#endif
794
795#if (defined(RS_VERSION) && (RS_VERSION >= 22))
796extern void __attribute__((overloadable))
797    rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
798#endif
799
800#if (defined(RS_VERSION) && (RS_VERSION >= 22))
801extern void __attribute__((overloadable))
802    rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
803#endif
804
805#if (defined(RS_VERSION) && (RS_VERSION >= 22))
806extern void __attribute__((overloadable))
807    rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
808#endif
809
810#if (defined(RS_VERSION) && (RS_VERSION >= 22))
811extern void __attribute__((overloadable))
812    rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
813#endif
814
815#if (defined(RS_VERSION) && (RS_VERSION >= 22))
816extern void __attribute__((overloadable))
817    rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
818#endif
819
820#if (defined(RS_VERSION) && (RS_VERSION >= 22))
821extern void __attribute__((overloadable))
822    rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
823#endif
824
825#if (defined(RS_VERSION) && (RS_VERSION >= 22))
826extern void __attribute__((overloadable))
827    rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
828#endif
829
830#if (defined(RS_VERSION) && (RS_VERSION >= 22))
831extern void __attribute__((overloadable))
832    rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
833#endif
834
835#if (defined(RS_VERSION) && (RS_VERSION >= 22))
836extern void __attribute__((overloadable))
837    rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
838#endif
839
840#if (defined(RS_VERSION) && (RS_VERSION >= 22))
841extern void __attribute__((overloadable))
842    rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
843#endif
844
845#if (defined(RS_VERSION) && (RS_VERSION >= 22))
846extern void __attribute__((overloadable))
847    rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
848#endif
849
850#if (defined(RS_VERSION) && (RS_VERSION >= 22))
851extern void __attribute__((overloadable))
852    rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
853#endif
854
855#if (defined(RS_VERSION) && (RS_VERSION >= 22))
856extern void __attribute__((overloadable))
857    rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
858#endif
859
860#if (defined(RS_VERSION) && (RS_VERSION >= 22))
861extern void __attribute__((overloadable))
862    rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
863#endif
864
865#if (defined(RS_VERSION) && (RS_VERSION >= 22))
866extern void __attribute__((overloadable))
867    rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
868#endif
869
870#if (defined(RS_VERSION) && (RS_VERSION >= 22))
871extern void __attribute__((overloadable))
872    rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
873#endif
874
875#if (defined(RS_VERSION) && (RS_VERSION >= 22))
876extern void __attribute__((overloadable))
877    rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
878#endif
879
880#if (defined(RS_VERSION) && (RS_VERSION >= 22))
881extern void __attribute__((overloadable))
882    rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
883#endif
884
885#if (defined(RS_VERSION) && (RS_VERSION >= 22))
886extern void __attribute__((overloadable))
887    rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
888#endif
889
890#if (defined(RS_VERSION) && (RS_VERSION >= 22))
891extern void __attribute__((overloadable))
892    rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
893#endif
894
895#if (defined(RS_VERSION) && (RS_VERSION >= 22))
896extern void __attribute__((overloadable))
897    rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
898#endif
899
900#if (defined(RS_VERSION) && (RS_VERSION >= 22))
901extern void __attribute__((overloadable))
902    rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
903#endif
904
905#if (defined(RS_VERSION) && (RS_VERSION >= 22))
906extern void __attribute__((overloadable))
907    rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
908#endif
909
910#if (defined(RS_VERSION) && (RS_VERSION >= 22))
911extern void __attribute__((overloadable))
912    rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
913#endif
914
915#if (defined(RS_VERSION) && (RS_VERSION >= 22))
916extern void __attribute__((overloadable))
917    rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
918#endif
919
920#if (defined(RS_VERSION) && (RS_VERSION >= 22))
921extern void __attribute__((overloadable))
922    rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
923#endif
924
925#if (defined(RS_VERSION) && (RS_VERSION >= 22))
926extern void __attribute__((overloadable))
927    rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
928#endif
929
930#if (defined(RS_VERSION) && (RS_VERSION >= 22))
931extern void __attribute__((overloadable))
932    rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
933#endif
934
935#if (defined(RS_VERSION) && (RS_VERSION >= 22))
936extern void __attribute__((overloadable))
937    rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
938#endif
939
940#if (defined(RS_VERSION) && (RS_VERSION >= 22))
941extern void __attribute__((overloadable))
942    rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
943#endif
944
945#if (defined(RS_VERSION) && (RS_VERSION >= 22))
946extern void __attribute__((overloadable))
947    rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
948#endif
949
950#if (defined(RS_VERSION) && (RS_VERSION >= 22))
951extern void __attribute__((overloadable))
952    rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
953#endif
954
955#if (defined(RS_VERSION) && (RS_VERSION >= 22))
956extern void __attribute__((overloadable))
957    rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
958#endif
959
960#if (defined(RS_VERSION) && (RS_VERSION >= 22))
961extern void __attribute__((overloadable))
962    rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
963#endif
964
965#if (defined(RS_VERSION) && (RS_VERSION >= 22))
966extern void __attribute__((overloadable))
967    rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
968#endif
969
970#if (defined(RS_VERSION) && (RS_VERSION >= 22))
971extern void __attribute__((overloadable))
972    rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
973#endif
974
975#if (defined(RS_VERSION) && (RS_VERSION >= 22))
976extern void __attribute__((overloadable))
977    rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
978#endif
979
980#if (defined(RS_VERSION) && (RS_VERSION >= 22))
981extern void __attribute__((overloadable))
982    rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
983#endif
984
985#if (defined(RS_VERSION) && (RS_VERSION >= 22))
986extern void __attribute__((overloadable))
987    rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
988#endif
989
990#if (defined(RS_VERSION) && (RS_VERSION >= 22))
991extern void __attribute__((overloadable))
992    rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
993#endif
994
995#if (defined(RS_VERSION) && (RS_VERSION >= 22))
996extern void __attribute__((overloadable))
997    rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
998#endif
999
1000#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1001extern void __attribute__((overloadable))
1002    rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
1003#endif
1004
1005#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1006extern void __attribute__((overloadable))
1007    rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
1008#endif
1009
1010#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1011extern void __attribute__((overloadable))
1012    rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
1013#endif
1014
1015#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1016extern void __attribute__((overloadable))
1017    rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
1018#endif
1019
1020#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1021extern void __attribute__((overloadable))
1022    rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
1023#endif
1024
1025#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1026extern void __attribute__((overloadable))
1027    rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
1028#endif
1029
1030#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1031extern void __attribute__((overloadable))
1032    rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
1033#endif
1034
1035#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1036extern void __attribute__((overloadable))
1037    rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
1038#endif
1039
1040#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1041extern void __attribute__((overloadable))
1042    rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
1043#endif
1044
1045#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1046extern void __attribute__((overloadable))
1047    rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
1048#endif
1049
1050#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1051extern void __attribute__((overloadable))
1052    rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
1053#endif
1054
1055#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1056extern void __attribute__((overloadable))
1057    rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
1058#endif
1059
1060#if (defined(RS_VERSION) && (RS_VERSION >= 22))
1061extern void __attribute__((overloadable))
1062    rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
1063#endif
1064
1065/*
1066 * rsGetElementAt: Return a cell from an allocation
1067 *
1068 * This function extracts a single cell from an allocation.
1069 *
1070 * When retrieving from a three dimensional allocations, use the x, y, z variant.
1071 * Similarly, use the x, y variant for two dimensional allocations and x for the
1072 * mono dimensional allocations.
1073 *
1074 * This function has two styles.  One returns the address of the value using a void*,
1075 * the other returns the actual value, e.g. rsGetElementAt() vs. rsGetElementAt_int4().
1076 * For primitive types, always use the latter as it is more efficient.
1077 */
1078extern const void* __attribute__((overloadable))
1079    rsGetElementAt(rs_allocation a, uint32_t x);
1080
1081extern const void* __attribute__((overloadable))
1082    rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y);
1083
1084extern const void* __attribute__((overloadable))
1085    rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
1086
1087#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1088static inline float __attribute__((overloadable))
1089    rsGetElementAt_float(rs_allocation a, uint32_t x) {
1090    return ((float *)rsGetElementAt(a, x))[0];
1091}
1092#endif
1093
1094#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1095static inline float2 __attribute__((overloadable))
1096    rsGetElementAt_float2(rs_allocation a, uint32_t x) {
1097    return ((float2 *)rsGetElementAt(a, x))[0];
1098}
1099#endif
1100
1101#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1102static inline float3 __attribute__((overloadable))
1103    rsGetElementAt_float3(rs_allocation a, uint32_t x) {
1104    return ((float3 *)rsGetElementAt(a, x))[0];
1105}
1106#endif
1107
1108#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1109static inline float4 __attribute__((overloadable))
1110    rsGetElementAt_float4(rs_allocation a, uint32_t x) {
1111    return ((float4 *)rsGetElementAt(a, x))[0];
1112}
1113#endif
1114
1115#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1116static inline double __attribute__((overloadable))
1117    rsGetElementAt_double(rs_allocation a, uint32_t x) {
1118    return ((double *)rsGetElementAt(a, x))[0];
1119}
1120#endif
1121
1122#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1123static inline double2 __attribute__((overloadable))
1124    rsGetElementAt_double2(rs_allocation a, uint32_t x) {
1125    return ((double2 *)rsGetElementAt(a, x))[0];
1126}
1127#endif
1128
1129#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1130static inline double3 __attribute__((overloadable))
1131    rsGetElementAt_double3(rs_allocation a, uint32_t x) {
1132    return ((double3 *)rsGetElementAt(a, x))[0];
1133}
1134#endif
1135
1136#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1137static inline double4 __attribute__((overloadable))
1138    rsGetElementAt_double4(rs_allocation a, uint32_t x) {
1139    return ((double4 *)rsGetElementAt(a, x))[0];
1140}
1141#endif
1142
1143#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1144static inline char __attribute__((overloadable))
1145    rsGetElementAt_char(rs_allocation a, uint32_t x) {
1146    return ((char *)rsGetElementAt(a, x))[0];
1147}
1148#endif
1149
1150#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1151static inline char2 __attribute__((overloadable))
1152    rsGetElementAt_char2(rs_allocation a, uint32_t x) {
1153    return ((char2 *)rsGetElementAt(a, x))[0];
1154}
1155#endif
1156
1157#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1158static inline char3 __attribute__((overloadable))
1159    rsGetElementAt_char3(rs_allocation a, uint32_t x) {
1160    return ((char3 *)rsGetElementAt(a, x))[0];
1161}
1162#endif
1163
1164#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1165static inline char4 __attribute__((overloadable))
1166    rsGetElementAt_char4(rs_allocation a, uint32_t x) {
1167    return ((char4 *)rsGetElementAt(a, x))[0];
1168}
1169#endif
1170
1171#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1172static inline uchar __attribute__((overloadable))
1173    rsGetElementAt_uchar(rs_allocation a, uint32_t x) {
1174    return ((uchar *)rsGetElementAt(a, x))[0];
1175}
1176#endif
1177
1178#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1179static inline uchar2 __attribute__((overloadable))
1180    rsGetElementAt_uchar2(rs_allocation a, uint32_t x) {
1181    return ((uchar2 *)rsGetElementAt(a, x))[0];
1182}
1183#endif
1184
1185#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1186static inline uchar3 __attribute__((overloadable))
1187    rsGetElementAt_uchar3(rs_allocation a, uint32_t x) {
1188    return ((uchar3 *)rsGetElementAt(a, x))[0];
1189}
1190#endif
1191
1192#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1193static inline uchar4 __attribute__((overloadable))
1194    rsGetElementAt_uchar4(rs_allocation a, uint32_t x) {
1195    return ((uchar4 *)rsGetElementAt(a, x))[0];
1196}
1197#endif
1198
1199#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1200static inline short __attribute__((overloadable))
1201    rsGetElementAt_short(rs_allocation a, uint32_t x) {
1202    return ((short *)rsGetElementAt(a, x))[0];
1203}
1204#endif
1205
1206#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1207static inline short2 __attribute__((overloadable))
1208    rsGetElementAt_short2(rs_allocation a, uint32_t x) {
1209    return ((short2 *)rsGetElementAt(a, x))[0];
1210}
1211#endif
1212
1213#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1214static inline short3 __attribute__((overloadable))
1215    rsGetElementAt_short3(rs_allocation a, uint32_t x) {
1216    return ((short3 *)rsGetElementAt(a, x))[0];
1217}
1218#endif
1219
1220#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1221static inline short4 __attribute__((overloadable))
1222    rsGetElementAt_short4(rs_allocation a, uint32_t x) {
1223    return ((short4 *)rsGetElementAt(a, x))[0];
1224}
1225#endif
1226
1227#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1228static inline ushort __attribute__((overloadable))
1229    rsGetElementAt_ushort(rs_allocation a, uint32_t x) {
1230    return ((ushort *)rsGetElementAt(a, x))[0];
1231}
1232#endif
1233
1234#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1235static inline ushort2 __attribute__((overloadable))
1236    rsGetElementAt_ushort2(rs_allocation a, uint32_t x) {
1237    return ((ushort2 *)rsGetElementAt(a, x))[0];
1238}
1239#endif
1240
1241#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1242static inline ushort3 __attribute__((overloadable))
1243    rsGetElementAt_ushort3(rs_allocation a, uint32_t x) {
1244    return ((ushort3 *)rsGetElementAt(a, x))[0];
1245}
1246#endif
1247
1248#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1249static inline ushort4 __attribute__((overloadable))
1250    rsGetElementAt_ushort4(rs_allocation a, uint32_t x) {
1251    return ((ushort4 *)rsGetElementAt(a, x))[0];
1252}
1253#endif
1254
1255#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1256static inline int __attribute__((overloadable))
1257    rsGetElementAt_int(rs_allocation a, uint32_t x) {
1258    return ((int *)rsGetElementAt(a, x))[0];
1259}
1260#endif
1261
1262#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1263static inline int2 __attribute__((overloadable))
1264    rsGetElementAt_int2(rs_allocation a, uint32_t x) {
1265    return ((int2 *)rsGetElementAt(a, x))[0];
1266}
1267#endif
1268
1269#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1270static inline int3 __attribute__((overloadable))
1271    rsGetElementAt_int3(rs_allocation a, uint32_t x) {
1272    return ((int3 *)rsGetElementAt(a, x))[0];
1273}
1274#endif
1275
1276#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1277static inline int4 __attribute__((overloadable))
1278    rsGetElementAt_int4(rs_allocation a, uint32_t x) {
1279    return ((int4 *)rsGetElementAt(a, x))[0];
1280}
1281#endif
1282
1283#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1284static inline uint __attribute__((overloadable))
1285    rsGetElementAt_uint(rs_allocation a, uint32_t x) {
1286    return ((uint *)rsGetElementAt(a, x))[0];
1287}
1288#endif
1289
1290#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1291static inline uint2 __attribute__((overloadable))
1292    rsGetElementAt_uint2(rs_allocation a, uint32_t x) {
1293    return ((uint2 *)rsGetElementAt(a, x))[0];
1294}
1295#endif
1296
1297#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1298static inline uint3 __attribute__((overloadable))
1299    rsGetElementAt_uint3(rs_allocation a, uint32_t x) {
1300    return ((uint3 *)rsGetElementAt(a, x))[0];
1301}
1302#endif
1303
1304#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1305static inline uint4 __attribute__((overloadable))
1306    rsGetElementAt_uint4(rs_allocation a, uint32_t x) {
1307    return ((uint4 *)rsGetElementAt(a, x))[0];
1308}
1309#endif
1310
1311#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1312static inline long __attribute__((overloadable))
1313    rsGetElementAt_long(rs_allocation a, uint32_t x) {
1314    return ((long *)rsGetElementAt(a, x))[0];
1315}
1316#endif
1317
1318#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1319static inline long2 __attribute__((overloadable))
1320    rsGetElementAt_long2(rs_allocation a, uint32_t x) {
1321    return ((long2 *)rsGetElementAt(a, x))[0];
1322}
1323#endif
1324
1325#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1326static inline long3 __attribute__((overloadable))
1327    rsGetElementAt_long3(rs_allocation a, uint32_t x) {
1328    return ((long3 *)rsGetElementAt(a, x))[0];
1329}
1330#endif
1331
1332#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1333static inline long4 __attribute__((overloadable))
1334    rsGetElementAt_long4(rs_allocation a, uint32_t x) {
1335    return ((long4 *)rsGetElementAt(a, x))[0];
1336}
1337#endif
1338
1339#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1340static inline ulong __attribute__((overloadable))
1341    rsGetElementAt_ulong(rs_allocation a, uint32_t x) {
1342    return ((ulong *)rsGetElementAt(a, x))[0];
1343}
1344#endif
1345
1346#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1347static inline ulong2 __attribute__((overloadable))
1348    rsGetElementAt_ulong2(rs_allocation a, uint32_t x) {
1349    return ((ulong2 *)rsGetElementAt(a, x))[0];
1350}
1351#endif
1352
1353#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1354static inline ulong3 __attribute__((overloadable))
1355    rsGetElementAt_ulong3(rs_allocation a, uint32_t x) {
1356    return ((ulong3 *)rsGetElementAt(a, x))[0];
1357}
1358#endif
1359
1360#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1361static inline ulong4 __attribute__((overloadable))
1362    rsGetElementAt_ulong4(rs_allocation a, uint32_t x) {
1363    return ((ulong4 *)rsGetElementAt(a, x))[0];
1364}
1365#endif
1366
1367#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1368static inline float __attribute__((overloadable))
1369    rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y) {
1370    return ((float *)rsGetElementAt(a, x, y))[0];
1371}
1372#endif
1373
1374#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1375static inline float2 __attribute__((overloadable))
1376    rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y) {
1377    return ((float2 *)rsGetElementAt(a, x, y))[0];
1378}
1379#endif
1380
1381#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1382static inline float3 __attribute__((overloadable))
1383    rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y) {
1384    return ((float3 *)rsGetElementAt(a, x, y))[0];
1385}
1386#endif
1387
1388#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1389static inline float4 __attribute__((overloadable))
1390    rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y) {
1391    return ((float4 *)rsGetElementAt(a, x, y))[0];
1392}
1393#endif
1394
1395#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1396static inline double __attribute__((overloadable))
1397    rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y) {
1398    return ((double *)rsGetElementAt(a, x, y))[0];
1399}
1400#endif
1401
1402#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1403static inline double2 __attribute__((overloadable))
1404    rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y) {
1405    return ((double2 *)rsGetElementAt(a, x, y))[0];
1406}
1407#endif
1408
1409#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1410static inline double3 __attribute__((overloadable))
1411    rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y) {
1412    return ((double3 *)rsGetElementAt(a, x, y))[0];
1413}
1414#endif
1415
1416#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1417static inline double4 __attribute__((overloadable))
1418    rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y) {
1419    return ((double4 *)rsGetElementAt(a, x, y))[0];
1420}
1421#endif
1422
1423#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1424static inline char __attribute__((overloadable))
1425    rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y) {
1426    return ((char *)rsGetElementAt(a, x, y))[0];
1427}
1428#endif
1429
1430#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1431static inline char2 __attribute__((overloadable))
1432    rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y) {
1433    return ((char2 *)rsGetElementAt(a, x, y))[0];
1434}
1435#endif
1436
1437#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1438static inline char3 __attribute__((overloadable))
1439    rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y) {
1440    return ((char3 *)rsGetElementAt(a, x, y))[0];
1441}
1442#endif
1443
1444#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1445static inline char4 __attribute__((overloadable))
1446    rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y) {
1447    return ((char4 *)rsGetElementAt(a, x, y))[0];
1448}
1449#endif
1450
1451#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1452static inline uchar __attribute__((overloadable))
1453    rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y) {
1454    return ((uchar *)rsGetElementAt(a, x, y))[0];
1455}
1456#endif
1457
1458#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1459static inline uchar2 __attribute__((overloadable))
1460    rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y) {
1461    return ((uchar2 *)rsGetElementAt(a, x, y))[0];
1462}
1463#endif
1464
1465#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1466static inline uchar3 __attribute__((overloadable))
1467    rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y) {
1468    return ((uchar3 *)rsGetElementAt(a, x, y))[0];
1469}
1470#endif
1471
1472#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1473static inline uchar4 __attribute__((overloadable))
1474    rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y) {
1475    return ((uchar4 *)rsGetElementAt(a, x, y))[0];
1476}
1477#endif
1478
1479#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1480static inline short __attribute__((overloadable))
1481    rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y) {
1482    return ((short *)rsGetElementAt(a, x, y))[0];
1483}
1484#endif
1485
1486#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1487static inline short2 __attribute__((overloadable))
1488    rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y) {
1489    return ((short2 *)rsGetElementAt(a, x, y))[0];
1490}
1491#endif
1492
1493#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1494static inline short3 __attribute__((overloadable))
1495    rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y) {
1496    return ((short3 *)rsGetElementAt(a, x, y))[0];
1497}
1498#endif
1499
1500#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1501static inline short4 __attribute__((overloadable))
1502    rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y) {
1503    return ((short4 *)rsGetElementAt(a, x, y))[0];
1504}
1505#endif
1506
1507#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1508static inline ushort __attribute__((overloadable))
1509    rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y) {
1510    return ((ushort *)rsGetElementAt(a, x, y))[0];
1511}
1512#endif
1513
1514#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1515static inline ushort2 __attribute__((overloadable))
1516    rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y) {
1517    return ((ushort2 *)rsGetElementAt(a, x, y))[0];
1518}
1519#endif
1520
1521#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1522static inline ushort3 __attribute__((overloadable))
1523    rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y) {
1524    return ((ushort3 *)rsGetElementAt(a, x, y))[0];
1525}
1526#endif
1527
1528#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1529static inline ushort4 __attribute__((overloadable))
1530    rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y) {
1531    return ((ushort4 *)rsGetElementAt(a, x, y))[0];
1532}
1533#endif
1534
1535#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1536static inline int __attribute__((overloadable))
1537    rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y) {
1538    return ((int *)rsGetElementAt(a, x, y))[0];
1539}
1540#endif
1541
1542#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1543static inline int2 __attribute__((overloadable))
1544    rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y) {
1545    return ((int2 *)rsGetElementAt(a, x, y))[0];
1546}
1547#endif
1548
1549#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1550static inline int3 __attribute__((overloadable))
1551    rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y) {
1552    return ((int3 *)rsGetElementAt(a, x, y))[0];
1553}
1554#endif
1555
1556#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1557static inline int4 __attribute__((overloadable))
1558    rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y) {
1559    return ((int4 *)rsGetElementAt(a, x, y))[0];
1560}
1561#endif
1562
1563#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1564static inline uint __attribute__((overloadable))
1565    rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y) {
1566    return ((uint *)rsGetElementAt(a, x, y))[0];
1567}
1568#endif
1569
1570#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1571static inline uint2 __attribute__((overloadable))
1572    rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y) {
1573    return ((uint2 *)rsGetElementAt(a, x, y))[0];
1574}
1575#endif
1576
1577#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1578static inline uint3 __attribute__((overloadable))
1579    rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y) {
1580    return ((uint3 *)rsGetElementAt(a, x, y))[0];
1581}
1582#endif
1583
1584#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1585static inline uint4 __attribute__((overloadable))
1586    rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y) {
1587    return ((uint4 *)rsGetElementAt(a, x, y))[0];
1588}
1589#endif
1590
1591#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1592static inline long __attribute__((overloadable))
1593    rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y) {
1594    return ((long *)rsGetElementAt(a, x, y))[0];
1595}
1596#endif
1597
1598#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1599static inline long2 __attribute__((overloadable))
1600    rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y) {
1601    return ((long2 *)rsGetElementAt(a, x, y))[0];
1602}
1603#endif
1604
1605#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1606static inline long3 __attribute__((overloadable))
1607    rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y) {
1608    return ((long3 *)rsGetElementAt(a, x, y))[0];
1609}
1610#endif
1611
1612#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1613static inline long4 __attribute__((overloadable))
1614    rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y) {
1615    return ((long4 *)rsGetElementAt(a, x, y))[0];
1616}
1617#endif
1618
1619#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1620static inline ulong __attribute__((overloadable))
1621    rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y) {
1622    return ((ulong *)rsGetElementAt(a, x, y))[0];
1623}
1624#endif
1625
1626#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1627static inline ulong2 __attribute__((overloadable))
1628    rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y) {
1629    return ((ulong2 *)rsGetElementAt(a, x, y))[0];
1630}
1631#endif
1632
1633#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1634static inline ulong3 __attribute__((overloadable))
1635    rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y) {
1636    return ((ulong3 *)rsGetElementAt(a, x, y))[0];
1637}
1638#endif
1639
1640#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1641static inline ulong4 __attribute__((overloadable))
1642    rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y) {
1643    return ((ulong4 *)rsGetElementAt(a, x, y))[0];
1644}
1645#endif
1646
1647#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1648static inline float __attribute__((overloadable))
1649    rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1650    return ((float *)rsGetElementAt(a, x, y, z))[0];
1651}
1652#endif
1653
1654#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1655static inline float2 __attribute__((overloadable))
1656    rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1657    return ((float2 *)rsGetElementAt(a, x, y, z))[0];
1658}
1659#endif
1660
1661#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1662static inline float3 __attribute__((overloadable))
1663    rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1664    return ((float3 *)rsGetElementAt(a, x, y, z))[0];
1665}
1666#endif
1667
1668#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1669static inline float4 __attribute__((overloadable))
1670    rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1671    return ((float4 *)rsGetElementAt(a, x, y, z))[0];
1672}
1673#endif
1674
1675#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1676static inline double __attribute__((overloadable))
1677    rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1678    return ((double *)rsGetElementAt(a, x, y, z))[0];
1679}
1680#endif
1681
1682#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1683static inline double2 __attribute__((overloadable))
1684    rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1685    return ((double2 *)rsGetElementAt(a, x, y, z))[0];
1686}
1687#endif
1688
1689#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1690static inline double3 __attribute__((overloadable))
1691    rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1692    return ((double3 *)rsGetElementAt(a, x, y, z))[0];
1693}
1694#endif
1695
1696#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1697static inline double4 __attribute__((overloadable))
1698    rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1699    return ((double4 *)rsGetElementAt(a, x, y, z))[0];
1700}
1701#endif
1702
1703#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1704static inline char __attribute__((overloadable))
1705    rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1706    return ((char *)rsGetElementAt(a, x, y, z))[0];
1707}
1708#endif
1709
1710#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1711static inline char2 __attribute__((overloadable))
1712    rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1713    return ((char2 *)rsGetElementAt(a, x, y, z))[0];
1714}
1715#endif
1716
1717#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1718static inline char3 __attribute__((overloadable))
1719    rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1720    return ((char3 *)rsGetElementAt(a, x, y, z))[0];
1721}
1722#endif
1723
1724#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1725static inline char4 __attribute__((overloadable))
1726    rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1727    return ((char4 *)rsGetElementAt(a, x, y, z))[0];
1728}
1729#endif
1730
1731#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1732static inline uchar __attribute__((overloadable))
1733    rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1734    return ((uchar *)rsGetElementAt(a, x, y, z))[0];
1735}
1736#endif
1737
1738#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1739static inline uchar2 __attribute__((overloadable))
1740    rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1741    return ((uchar2 *)rsGetElementAt(a, x, y, z))[0];
1742}
1743#endif
1744
1745#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1746static inline uchar3 __attribute__((overloadable))
1747    rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1748    return ((uchar3 *)rsGetElementAt(a, x, y, z))[0];
1749}
1750#endif
1751
1752#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1753static inline uchar4 __attribute__((overloadable))
1754    rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1755    return ((uchar4 *)rsGetElementAt(a, x, y, z))[0];
1756}
1757#endif
1758
1759#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1760static inline short __attribute__((overloadable))
1761    rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1762    return ((short *)rsGetElementAt(a, x, y, z))[0];
1763}
1764#endif
1765
1766#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1767static inline short2 __attribute__((overloadable))
1768    rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1769    return ((short2 *)rsGetElementAt(a, x, y, z))[0];
1770}
1771#endif
1772
1773#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1774static inline short3 __attribute__((overloadable))
1775    rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1776    return ((short3 *)rsGetElementAt(a, x, y, z))[0];
1777}
1778#endif
1779
1780#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1781static inline short4 __attribute__((overloadable))
1782    rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1783    return ((short4 *)rsGetElementAt(a, x, y, z))[0];
1784}
1785#endif
1786
1787#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1788static inline ushort __attribute__((overloadable))
1789    rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1790    return ((ushort *)rsGetElementAt(a, x, y, z))[0];
1791}
1792#endif
1793
1794#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1795static inline ushort2 __attribute__((overloadable))
1796    rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1797    return ((ushort2 *)rsGetElementAt(a, x, y, z))[0];
1798}
1799#endif
1800
1801#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1802static inline ushort3 __attribute__((overloadable))
1803    rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1804    return ((ushort3 *)rsGetElementAt(a, x, y, z))[0];
1805}
1806#endif
1807
1808#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1809static inline ushort4 __attribute__((overloadable))
1810    rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1811    return ((ushort4 *)rsGetElementAt(a, x, y, z))[0];
1812}
1813#endif
1814
1815#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1816static inline int __attribute__((overloadable))
1817    rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1818    return ((int *)rsGetElementAt(a, x, y, z))[0];
1819}
1820#endif
1821
1822#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1823static inline int2 __attribute__((overloadable))
1824    rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1825    return ((int2 *)rsGetElementAt(a, x, y, z))[0];
1826}
1827#endif
1828
1829#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1830static inline int3 __attribute__((overloadable))
1831    rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1832    return ((int3 *)rsGetElementAt(a, x, y, z))[0];
1833}
1834#endif
1835
1836#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1837static inline int4 __attribute__((overloadable))
1838    rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1839    return ((int4 *)rsGetElementAt(a, x, y, z))[0];
1840}
1841#endif
1842
1843#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1844static inline uint __attribute__((overloadable))
1845    rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1846    return ((uint *)rsGetElementAt(a, x, y, z))[0];
1847}
1848#endif
1849
1850#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1851static inline uint2 __attribute__((overloadable))
1852    rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1853    return ((uint2 *)rsGetElementAt(a, x, y, z))[0];
1854}
1855#endif
1856
1857#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1858static inline uint3 __attribute__((overloadable))
1859    rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1860    return ((uint3 *)rsGetElementAt(a, x, y, z))[0];
1861}
1862#endif
1863
1864#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1865static inline uint4 __attribute__((overloadable))
1866    rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1867    return ((uint4 *)rsGetElementAt(a, x, y, z))[0];
1868}
1869#endif
1870
1871#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1872static inline long __attribute__((overloadable))
1873    rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1874    return ((long *)rsGetElementAt(a, x, y, z))[0];
1875}
1876#endif
1877
1878#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1879static inline long2 __attribute__((overloadable))
1880    rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1881    return ((long2 *)rsGetElementAt(a, x, y, z))[0];
1882}
1883#endif
1884
1885#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1886static inline long3 __attribute__((overloadable))
1887    rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1888    return ((long3 *)rsGetElementAt(a, x, y, z))[0];
1889}
1890#endif
1891
1892#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1893static inline long4 __attribute__((overloadable))
1894    rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1895    return ((long4 *)rsGetElementAt(a, x, y, z))[0];
1896}
1897#endif
1898
1899#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1900static inline ulong __attribute__((overloadable))
1901    rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1902    return ((ulong *)rsGetElementAt(a, x, y, z))[0];
1903}
1904#endif
1905
1906#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1907static inline ulong2 __attribute__((overloadable))
1908    rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1909    return ((ulong2 *)rsGetElementAt(a, x, y, z))[0];
1910}
1911#endif
1912
1913#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1914static inline ulong3 __attribute__((overloadable))
1915    rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1916    return ((ulong3 *)rsGetElementAt(a, x, y, z))[0];
1917}
1918#endif
1919
1920#if !defined(RS_VERSION) || (RS_VERSION <= 17)
1921static inline ulong4 __attribute__((overloadable))
1922    rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
1923    return ((ulong4 *)rsGetElementAt(a, x, y, z))[0];
1924}
1925#endif
1926
1927#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1928extern float __attribute__((overloadable))
1929    rsGetElementAt_float(rs_allocation a, uint32_t x);
1930#endif
1931
1932#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1933extern float2 __attribute__((overloadable))
1934    rsGetElementAt_float2(rs_allocation a, uint32_t x);
1935#endif
1936
1937#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1938extern float3 __attribute__((overloadable))
1939    rsGetElementAt_float3(rs_allocation a, uint32_t x);
1940#endif
1941
1942#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1943extern float4 __attribute__((overloadable))
1944    rsGetElementAt_float4(rs_allocation a, uint32_t x);
1945#endif
1946
1947#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1948extern double __attribute__((overloadable))
1949    rsGetElementAt_double(rs_allocation a, uint32_t x);
1950#endif
1951
1952#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1953extern double2 __attribute__((overloadable))
1954    rsGetElementAt_double2(rs_allocation a, uint32_t x);
1955#endif
1956
1957#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1958extern double3 __attribute__((overloadable))
1959    rsGetElementAt_double3(rs_allocation a, uint32_t x);
1960#endif
1961
1962#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1963extern double4 __attribute__((overloadable))
1964    rsGetElementAt_double4(rs_allocation a, uint32_t x);
1965#endif
1966
1967#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1968extern char __attribute__((overloadable))
1969    rsGetElementAt_char(rs_allocation a, uint32_t x);
1970#endif
1971
1972#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1973extern char2 __attribute__((overloadable))
1974    rsGetElementAt_char2(rs_allocation a, uint32_t x);
1975#endif
1976
1977#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1978extern char3 __attribute__((overloadable))
1979    rsGetElementAt_char3(rs_allocation a, uint32_t x);
1980#endif
1981
1982#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1983extern char4 __attribute__((overloadable))
1984    rsGetElementAt_char4(rs_allocation a, uint32_t x);
1985#endif
1986
1987#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1988extern uchar __attribute__((overloadable))
1989    rsGetElementAt_uchar(rs_allocation a, uint32_t x);
1990#endif
1991
1992#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1993extern uchar2 __attribute__((overloadable))
1994    rsGetElementAt_uchar2(rs_allocation a, uint32_t x);
1995#endif
1996
1997#if (defined(RS_VERSION) && (RS_VERSION >= 18))
1998extern uchar3 __attribute__((overloadable))
1999    rsGetElementAt_uchar3(rs_allocation a, uint32_t x);
2000#endif
2001
2002#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2003extern uchar4 __attribute__((overloadable))
2004    rsGetElementAt_uchar4(rs_allocation a, uint32_t x);
2005#endif
2006
2007#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2008extern short __attribute__((overloadable))
2009    rsGetElementAt_short(rs_allocation a, uint32_t x);
2010#endif
2011
2012#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2013extern short2 __attribute__((overloadable))
2014    rsGetElementAt_short2(rs_allocation a, uint32_t x);
2015#endif
2016
2017#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2018extern short3 __attribute__((overloadable))
2019    rsGetElementAt_short3(rs_allocation a, uint32_t x);
2020#endif
2021
2022#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2023extern short4 __attribute__((overloadable))
2024    rsGetElementAt_short4(rs_allocation a, uint32_t x);
2025#endif
2026
2027#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2028extern ushort __attribute__((overloadable))
2029    rsGetElementAt_ushort(rs_allocation a, uint32_t x);
2030#endif
2031
2032#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2033extern ushort2 __attribute__((overloadable))
2034    rsGetElementAt_ushort2(rs_allocation a, uint32_t x);
2035#endif
2036
2037#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2038extern ushort3 __attribute__((overloadable))
2039    rsGetElementAt_ushort3(rs_allocation a, uint32_t x);
2040#endif
2041
2042#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2043extern ushort4 __attribute__((overloadable))
2044    rsGetElementAt_ushort4(rs_allocation a, uint32_t x);
2045#endif
2046
2047#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2048extern int __attribute__((overloadable))
2049    rsGetElementAt_int(rs_allocation a, uint32_t x);
2050#endif
2051
2052#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2053extern int2 __attribute__((overloadable))
2054    rsGetElementAt_int2(rs_allocation a, uint32_t x);
2055#endif
2056
2057#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2058extern int3 __attribute__((overloadable))
2059    rsGetElementAt_int3(rs_allocation a, uint32_t x);
2060#endif
2061
2062#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2063extern int4 __attribute__((overloadable))
2064    rsGetElementAt_int4(rs_allocation a, uint32_t x);
2065#endif
2066
2067#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2068extern uint __attribute__((overloadable))
2069    rsGetElementAt_uint(rs_allocation a, uint32_t x);
2070#endif
2071
2072#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2073extern uint2 __attribute__((overloadable))
2074    rsGetElementAt_uint2(rs_allocation a, uint32_t x);
2075#endif
2076
2077#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2078extern uint3 __attribute__((overloadable))
2079    rsGetElementAt_uint3(rs_allocation a, uint32_t x);
2080#endif
2081
2082#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2083extern uint4 __attribute__((overloadable))
2084    rsGetElementAt_uint4(rs_allocation a, uint32_t x);
2085#endif
2086
2087#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2088extern long __attribute__((overloadable))
2089    rsGetElementAt_long(rs_allocation a, uint32_t x);
2090#endif
2091
2092#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2093extern long2 __attribute__((overloadable))
2094    rsGetElementAt_long2(rs_allocation a, uint32_t x);
2095#endif
2096
2097#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2098extern long3 __attribute__((overloadable))
2099    rsGetElementAt_long3(rs_allocation a, uint32_t x);
2100#endif
2101
2102#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2103extern long4 __attribute__((overloadable))
2104    rsGetElementAt_long4(rs_allocation a, uint32_t x);
2105#endif
2106
2107#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2108extern ulong __attribute__((overloadable))
2109    rsGetElementAt_ulong(rs_allocation a, uint32_t x);
2110#endif
2111
2112#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2113extern ulong2 __attribute__((overloadable))
2114    rsGetElementAt_ulong2(rs_allocation a, uint32_t x);
2115#endif
2116
2117#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2118extern ulong3 __attribute__((overloadable))
2119    rsGetElementAt_ulong3(rs_allocation a, uint32_t x);
2120#endif
2121
2122#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2123extern ulong4 __attribute__((overloadable))
2124    rsGetElementAt_ulong4(rs_allocation a, uint32_t x);
2125#endif
2126
2127#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2128extern float __attribute__((overloadable))
2129    rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y);
2130#endif
2131
2132#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2133extern float2 __attribute__((overloadable))
2134    rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y);
2135#endif
2136
2137#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2138extern float3 __attribute__((overloadable))
2139    rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y);
2140#endif
2141
2142#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2143extern float4 __attribute__((overloadable))
2144    rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y);
2145#endif
2146
2147#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2148extern double __attribute__((overloadable))
2149    rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y);
2150#endif
2151
2152#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2153extern double2 __attribute__((overloadable))
2154    rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y);
2155#endif
2156
2157#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2158extern double3 __attribute__((overloadable))
2159    rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y);
2160#endif
2161
2162#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2163extern double4 __attribute__((overloadable))
2164    rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y);
2165#endif
2166
2167#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2168extern char __attribute__((overloadable))
2169    rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y);
2170#endif
2171
2172#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2173extern char2 __attribute__((overloadable))
2174    rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y);
2175#endif
2176
2177#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2178extern char3 __attribute__((overloadable))
2179    rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y);
2180#endif
2181
2182#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2183extern char4 __attribute__((overloadable))
2184    rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y);
2185#endif
2186
2187#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2188extern uchar __attribute__((overloadable))
2189    rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y);
2190#endif
2191
2192#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2193extern uchar2 __attribute__((overloadable))
2194    rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y);
2195#endif
2196
2197#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2198extern uchar3 __attribute__((overloadable))
2199    rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y);
2200#endif
2201
2202#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2203extern uchar4 __attribute__((overloadable))
2204    rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y);
2205#endif
2206
2207#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2208extern short __attribute__((overloadable))
2209    rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y);
2210#endif
2211
2212#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2213extern short2 __attribute__((overloadable))
2214    rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y);
2215#endif
2216
2217#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2218extern short3 __attribute__((overloadable))
2219    rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y);
2220#endif
2221
2222#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2223extern short4 __attribute__((overloadable))
2224    rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y);
2225#endif
2226
2227#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2228extern ushort __attribute__((overloadable))
2229    rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y);
2230#endif
2231
2232#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2233extern ushort2 __attribute__((overloadable))
2234    rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y);
2235#endif
2236
2237#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2238extern ushort3 __attribute__((overloadable))
2239    rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y);
2240#endif
2241
2242#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2243extern ushort4 __attribute__((overloadable))
2244    rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y);
2245#endif
2246
2247#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2248extern int __attribute__((overloadable))
2249    rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y);
2250#endif
2251
2252#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2253extern int2 __attribute__((overloadable))
2254    rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y);
2255#endif
2256
2257#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2258extern int3 __attribute__((overloadable))
2259    rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y);
2260#endif
2261
2262#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2263extern int4 __attribute__((overloadable))
2264    rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y);
2265#endif
2266
2267#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2268extern uint __attribute__((overloadable))
2269    rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y);
2270#endif
2271
2272#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2273extern uint2 __attribute__((overloadable))
2274    rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y);
2275#endif
2276
2277#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2278extern uint3 __attribute__((overloadable))
2279    rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y);
2280#endif
2281
2282#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2283extern uint4 __attribute__((overloadable))
2284    rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y);
2285#endif
2286
2287#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2288extern long __attribute__((overloadable))
2289    rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y);
2290#endif
2291
2292#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2293extern long2 __attribute__((overloadable))
2294    rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y);
2295#endif
2296
2297#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2298extern long3 __attribute__((overloadable))
2299    rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y);
2300#endif
2301
2302#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2303extern long4 __attribute__((overloadable))
2304    rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y);
2305#endif
2306
2307#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2308extern ulong __attribute__((overloadable))
2309    rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y);
2310#endif
2311
2312#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2313extern ulong2 __attribute__((overloadable))
2314    rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y);
2315#endif
2316
2317#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2318extern ulong3 __attribute__((overloadable))
2319    rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y);
2320#endif
2321
2322#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2323extern ulong4 __attribute__((overloadable))
2324    rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y);
2325#endif
2326
2327#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2328extern float __attribute__((overloadable))
2329    rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2330#endif
2331
2332#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2333extern float2 __attribute__((overloadable))
2334    rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2335#endif
2336
2337#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2338extern float3 __attribute__((overloadable))
2339    rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2340#endif
2341
2342#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2343extern float4 __attribute__((overloadable))
2344    rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2345#endif
2346
2347#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2348extern double __attribute__((overloadable))
2349    rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2350#endif
2351
2352#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2353extern double2 __attribute__((overloadable))
2354    rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2355#endif
2356
2357#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2358extern double3 __attribute__((overloadable))
2359    rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2360#endif
2361
2362#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2363extern double4 __attribute__((overloadable))
2364    rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2365#endif
2366
2367#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2368extern char __attribute__((overloadable))
2369    rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2370#endif
2371
2372#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2373extern char2 __attribute__((overloadable))
2374    rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2375#endif
2376
2377#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2378extern char3 __attribute__((overloadable))
2379    rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2380#endif
2381
2382#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2383extern char4 __attribute__((overloadable))
2384    rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2385#endif
2386
2387#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2388extern uchar __attribute__((overloadable))
2389    rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2390#endif
2391
2392#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2393extern uchar2 __attribute__((overloadable))
2394    rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2395#endif
2396
2397#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2398extern uchar3 __attribute__((overloadable))
2399    rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2400#endif
2401
2402#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2403extern uchar4 __attribute__((overloadable))
2404    rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2405#endif
2406
2407#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2408extern short __attribute__((overloadable))
2409    rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2410#endif
2411
2412#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2413extern short2 __attribute__((overloadable))
2414    rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2415#endif
2416
2417#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2418extern short3 __attribute__((overloadable))
2419    rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2420#endif
2421
2422#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2423extern short4 __attribute__((overloadable))
2424    rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2425#endif
2426
2427#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2428extern ushort __attribute__((overloadable))
2429    rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2430#endif
2431
2432#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2433extern ushort2 __attribute__((overloadable))
2434    rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2435#endif
2436
2437#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2438extern ushort3 __attribute__((overloadable))
2439    rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2440#endif
2441
2442#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2443extern ushort4 __attribute__((overloadable))
2444    rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2445#endif
2446
2447#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2448extern int __attribute__((overloadable))
2449    rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2450#endif
2451
2452#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2453extern int2 __attribute__((overloadable))
2454    rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2455#endif
2456
2457#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2458extern int3 __attribute__((overloadable))
2459    rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2460#endif
2461
2462#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2463extern int4 __attribute__((overloadable))
2464    rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2465#endif
2466
2467#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2468extern uint __attribute__((overloadable))
2469    rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2470#endif
2471
2472#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2473extern uint2 __attribute__((overloadable))
2474    rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2475#endif
2476
2477#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2478extern uint3 __attribute__((overloadable))
2479    rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2480#endif
2481
2482#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2483extern uint4 __attribute__((overloadable))
2484    rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2485#endif
2486
2487#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2488extern long __attribute__((overloadable))
2489    rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2490#endif
2491
2492#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2493extern long2 __attribute__((overloadable))
2494    rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2495#endif
2496
2497#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2498extern long3 __attribute__((overloadable))
2499    rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2500#endif
2501
2502#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2503extern long4 __attribute__((overloadable))
2504    rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2505#endif
2506
2507#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2508extern ulong __attribute__((overloadable))
2509    rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2510#endif
2511
2512#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2513extern ulong2 __attribute__((overloadable))
2514    rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2515#endif
2516
2517#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2518extern ulong3 __attribute__((overloadable))
2519    rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2520#endif
2521
2522#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2523extern ulong4 __attribute__((overloadable))
2524    rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2525#endif
2526
2527#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2528extern half __attribute__((overloadable))
2529    rsGetElementAt_half(rs_allocation a, uint32_t x);
2530#endif
2531
2532#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2533extern half2 __attribute__((overloadable))
2534    rsGetElementAt_half2(rs_allocation a, uint32_t x);
2535#endif
2536
2537#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2538extern half3 __attribute__((overloadable))
2539    rsGetElementAt_half3(rs_allocation a, uint32_t x);
2540#endif
2541
2542#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2543extern half4 __attribute__((overloadable))
2544    rsGetElementAt_half4(rs_allocation a, uint32_t x);
2545#endif
2546
2547#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2548extern half __attribute__((overloadable))
2549    rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y);
2550#endif
2551
2552#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2553extern half2 __attribute__((overloadable))
2554    rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y);
2555#endif
2556
2557#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2558extern half3 __attribute__((overloadable))
2559    rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y);
2560#endif
2561
2562#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2563extern half4 __attribute__((overloadable))
2564    rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y);
2565#endif
2566
2567#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2568extern half __attribute__((overloadable))
2569    rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2570#endif
2571
2572#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2573extern half2 __attribute__((overloadable))
2574    rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2575#endif
2576
2577#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2578extern half3 __attribute__((overloadable))
2579    rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2580#endif
2581
2582#if (defined(RS_VERSION) && (RS_VERSION >= 23))
2583extern half4 __attribute__((overloadable))
2584    rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
2585#endif
2586
2587/*
2588 * rsGetElementAtYuv_uchar_U: Get the U component of an allocation of YUVs
2589 *
2590 * Extracts the U component of a single YUV value from a 2D allocation of YUVs.
2591 *
2592 * Inside an allocation, Y, U, and V components may be stored if different planes
2593 * and at different resolutions.  The x, y coordinates provided here are in the
2594 * dimensions of the Y plane.
2595 *
2596 * See rsGetElementAtYuv_uchar_Y().
2597 */
2598#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2599extern uchar __attribute__((overloadable))
2600    rsGetElementAtYuv_uchar_U(rs_allocation a, uint32_t x, uint32_t y);
2601#endif
2602
2603/*
2604 * rsGetElementAtYuv_uchar_V: Get the V component of an allocation of YUVs
2605 *
2606 * Extracts the V component of a single YUV value from a 2D allocation of YUVs.
2607 *
2608 * Inside an allocation, Y, U, and V components may be stored if different planes
2609 * and at different resolutions.  The x, y coordinates provided here are in the
2610 * dimensions of the Y plane.
2611 *
2612 * See rsGetElementAtYuv_uchar_Y().
2613 */
2614#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2615extern uchar __attribute__((overloadable))
2616    rsGetElementAtYuv_uchar_V(rs_allocation a, uint32_t x, uint32_t y);
2617#endif
2618
2619/*
2620 * rsGetElementAtYuv_uchar_Y: Get the Y component of an allocation of YUVs
2621 *
2622 * Extracts the Y component of a single YUV value from a 2D allocation of YUVs.
2623 *
2624 * Inside an allocation, Y, U, and V components may be stored if different planes
2625 * and at different resolutions.  The x, y coordinates provided here are in the
2626 * dimensions of the Y plane.
2627 *
2628 * See rsGetElementAtYuv_uchar_U() and rsGetElementAtYuv_uchar_V().
2629 */
2630#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2631extern uchar __attribute__((overloadable))
2632    rsGetElementAtYuv_uchar_Y(rs_allocation a, uint32_t x, uint32_t y);
2633#endif
2634
2635/*
2636 * rsSample: Sample a value from a texture allocation
2637 *
2638 * Fetches a value from a texture allocation in a way described by the sampler.
2639 *
2640 * If your allocation is 1D, use the variant with float for location.  For 2D,
2641 * use the float2 variant.
2642 *
2643 * See android.renderscript.Sampler for more details.
2644 *
2645 * Parameters:
2646 *   a: Allocation to sample from.
2647 *   s: Sampler state.
2648 *   location: Location to sample from.
2649 *   lod: Mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used.
2650 */
2651#if (defined(RS_VERSION) && (RS_VERSION >= 16))
2652extern float4 __attribute__((overloadable))
2653    rsSample(rs_allocation a, rs_sampler s, float location);
2654#endif
2655
2656#if (defined(RS_VERSION) && (RS_VERSION >= 16))
2657extern float4 __attribute__((overloadable))
2658    rsSample(rs_allocation a, rs_sampler s, float location, float lod);
2659#endif
2660
2661#if (defined(RS_VERSION) && (RS_VERSION >= 16))
2662extern float4 __attribute__((overloadable))
2663    rsSample(rs_allocation a, rs_sampler s, float2 location);
2664#endif
2665
2666#if (defined(RS_VERSION) && (RS_VERSION >= 16))
2667extern float4 __attribute__((overloadable))
2668    rsSample(rs_allocation a, rs_sampler s, float2 location, float lod);
2669#endif
2670
2671/*
2672 * rsSetElementAt: Set a cell of an allocation
2673 *
2674 * This function stores a value into a single cell of an allocation.
2675 *
2676 * When storing into a three dimensional allocations, use the x, y, z variant.
2677 * Similarly, use the x, y variant for two dimensional allocations and x for
2678 * the mono dimensional allocations.
2679 *
2680 * This function has two styles.  One passes the value to be stored using a void*,
2681 * the other has the actual value as an argument, e.g. rsSetElementAt() vs.
2682 * rsSetElementAt_int4().  For primitive types, always use the latter as it is
2683 * more efficient.
2684 *
2685 * See also rsGetElementAt().
2686 */
2687#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2688extern void __attribute__((overloadable))
2689    rsSetElementAt(rs_allocation a, void* ptr, uint32_t x);
2690#endif
2691
2692#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2693extern void __attribute__((overloadable))
2694    rsSetElementAt(rs_allocation a, void* ptr, uint32_t x, uint32_t y);
2695#endif
2696
2697#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2698extern void __attribute__((overloadable))
2699    rsSetElementAt_float(rs_allocation a, float val, uint32_t x);
2700#endif
2701
2702#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2703extern void __attribute__((overloadable))
2704    rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x);
2705#endif
2706
2707#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2708extern void __attribute__((overloadable))
2709    rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x);
2710#endif
2711
2712#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2713extern void __attribute__((overloadable))
2714    rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x);
2715#endif
2716
2717#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2718extern void __attribute__((overloadable))
2719    rsSetElementAt_double(rs_allocation a, double val, uint32_t x);
2720#endif
2721
2722#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2723extern void __attribute__((overloadable))
2724    rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x);
2725#endif
2726
2727#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2728extern void __attribute__((overloadable))
2729    rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x);
2730#endif
2731
2732#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2733extern void __attribute__((overloadable))
2734    rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x);
2735#endif
2736
2737#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2738extern void __attribute__((overloadable))
2739    rsSetElementAt_char(rs_allocation a, char val, uint32_t x);
2740#endif
2741
2742#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2743extern void __attribute__((overloadable))
2744    rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x);
2745#endif
2746
2747#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2748extern void __attribute__((overloadable))
2749    rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x);
2750#endif
2751
2752#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2753extern void __attribute__((overloadable))
2754    rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x);
2755#endif
2756
2757#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2758extern void __attribute__((overloadable))
2759    rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x);
2760#endif
2761
2762#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2763extern void __attribute__((overloadable))
2764    rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x);
2765#endif
2766
2767#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2768extern void __attribute__((overloadable))
2769    rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x);
2770#endif
2771
2772#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2773extern void __attribute__((overloadable))
2774    rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x);
2775#endif
2776
2777#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2778extern void __attribute__((overloadable))
2779    rsSetElementAt_short(rs_allocation a, short val, uint32_t x);
2780#endif
2781
2782#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2783extern void __attribute__((overloadable))
2784    rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x);
2785#endif
2786
2787#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2788extern void __attribute__((overloadable))
2789    rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x);
2790#endif
2791
2792#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2793extern void __attribute__((overloadable))
2794    rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x);
2795#endif
2796
2797#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2798extern void __attribute__((overloadable))
2799    rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x);
2800#endif
2801
2802#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2803extern void __attribute__((overloadable))
2804    rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x);
2805#endif
2806
2807#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2808extern void __attribute__((overloadable))
2809    rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x);
2810#endif
2811
2812#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2813extern void __attribute__((overloadable))
2814    rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x);
2815#endif
2816
2817#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2818extern void __attribute__((overloadable))
2819    rsSetElementAt_int(rs_allocation a, int val, uint32_t x);
2820#endif
2821
2822#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2823extern void __attribute__((overloadable))
2824    rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x);
2825#endif
2826
2827#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2828extern void __attribute__((overloadable))
2829    rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x);
2830#endif
2831
2832#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2833extern void __attribute__((overloadable))
2834    rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x);
2835#endif
2836
2837#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2838extern void __attribute__((overloadable))
2839    rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x);
2840#endif
2841
2842#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2843extern void __attribute__((overloadable))
2844    rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x);
2845#endif
2846
2847#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2848extern void __attribute__((overloadable))
2849    rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x);
2850#endif
2851
2852#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2853extern void __attribute__((overloadable))
2854    rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x);
2855#endif
2856
2857#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2858extern void __attribute__((overloadable))
2859    rsSetElementAt_long(rs_allocation a, long val, uint32_t x);
2860#endif
2861
2862#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2863extern void __attribute__((overloadable))
2864    rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x);
2865#endif
2866
2867#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2868extern void __attribute__((overloadable))
2869    rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x);
2870#endif
2871
2872#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2873extern void __attribute__((overloadable))
2874    rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x);
2875#endif
2876
2877#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2878extern void __attribute__((overloadable))
2879    rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x);
2880#endif
2881
2882#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2883extern void __attribute__((overloadable))
2884    rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x);
2885#endif
2886
2887#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2888extern void __attribute__((overloadable))
2889    rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x);
2890#endif
2891
2892#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2893extern void __attribute__((overloadable))
2894    rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x);
2895#endif
2896
2897#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2898extern void __attribute__((overloadable))
2899    rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y);
2900#endif
2901
2902#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2903extern void __attribute__((overloadable))
2904    rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
2905#endif
2906
2907#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2908extern void __attribute__((overloadable))
2909    rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
2910#endif
2911
2912#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2913extern void __attribute__((overloadable))
2914    rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
2915#endif
2916
2917#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2918extern void __attribute__((overloadable))
2919    rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y);
2920#endif
2921
2922#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2923extern void __attribute__((overloadable))
2924    rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
2925#endif
2926
2927#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2928extern void __attribute__((overloadable))
2929    rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
2930#endif
2931
2932#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2933extern void __attribute__((overloadable))
2934    rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
2935#endif
2936
2937#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2938extern void __attribute__((overloadable))
2939    rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y);
2940#endif
2941
2942#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2943extern void __attribute__((overloadable))
2944    rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
2945#endif
2946
2947#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2948extern void __attribute__((overloadable))
2949    rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
2950#endif
2951
2952#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2953extern void __attribute__((overloadable))
2954    rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
2955#endif
2956
2957#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2958extern void __attribute__((overloadable))
2959    rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y);
2960#endif
2961
2962#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2963extern void __attribute__((overloadable))
2964    rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
2965#endif
2966
2967#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2968extern void __attribute__((overloadable))
2969    rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
2970#endif
2971
2972#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2973extern void __attribute__((overloadable))
2974    rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
2975#endif
2976
2977#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2978extern void __attribute__((overloadable))
2979    rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y);
2980#endif
2981
2982#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2983extern void __attribute__((overloadable))
2984    rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
2985#endif
2986
2987#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2988extern void __attribute__((overloadable))
2989    rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
2990#endif
2991
2992#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2993extern void __attribute__((overloadable))
2994    rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
2995#endif
2996
2997#if (defined(RS_VERSION) && (RS_VERSION >= 18))
2998extern void __attribute__((overloadable))
2999    rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y);
3000#endif
3001
3002#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3003extern void __attribute__((overloadable))
3004    rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
3005#endif
3006
3007#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3008extern void __attribute__((overloadable))
3009    rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
3010#endif
3011
3012#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3013extern void __attribute__((overloadable))
3014    rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
3015#endif
3016
3017#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3018extern void __attribute__((overloadable))
3019    rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y);
3020#endif
3021
3022#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3023extern void __attribute__((overloadable))
3024    rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
3025#endif
3026
3027#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3028extern void __attribute__((overloadable))
3029    rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
3030#endif
3031
3032#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3033extern void __attribute__((overloadable))
3034    rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
3035#endif
3036
3037#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3038extern void __attribute__((overloadable))
3039    rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y);
3040#endif
3041
3042#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3043extern void __attribute__((overloadable))
3044    rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
3045#endif
3046
3047#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3048extern void __attribute__((overloadable))
3049    rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
3050#endif
3051
3052#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3053extern void __attribute__((overloadable))
3054    rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
3055#endif
3056
3057#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3058extern void __attribute__((overloadable))
3059    rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y);
3060#endif
3061
3062#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3063extern void __attribute__((overloadable))
3064    rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
3065#endif
3066
3067#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3068extern void __attribute__((overloadable))
3069    rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
3070#endif
3071
3072#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3073extern void __attribute__((overloadable))
3074    rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
3075#endif
3076
3077#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3078extern void __attribute__((overloadable))
3079    rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y);
3080#endif
3081
3082#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3083extern void __attribute__((overloadable))
3084    rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
3085#endif
3086
3087#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3088extern void __attribute__((overloadable))
3089    rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
3090#endif
3091
3092#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3093extern void __attribute__((overloadable))
3094    rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
3095#endif
3096
3097#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3098extern void __attribute__((overloadable))
3099    rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y, uint32_t z);
3100#endif
3101
3102#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3103extern void __attribute__((overloadable))
3104    rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
3105#endif
3106
3107#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3108extern void __attribute__((overloadable))
3109    rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
3110#endif
3111
3112#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3113extern void __attribute__((overloadable))
3114    rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
3115#endif
3116
3117#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3118extern void __attribute__((overloadable))
3119    rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y, uint32_t z);
3120#endif
3121
3122#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3123extern void __attribute__((overloadable))
3124    rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
3125#endif
3126
3127#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3128extern void __attribute__((overloadable))
3129    rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
3130#endif
3131
3132#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3133extern void __attribute__((overloadable))
3134    rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
3135#endif
3136
3137#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3138extern void __attribute__((overloadable))
3139    rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y, uint32_t z);
3140#endif
3141
3142#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3143extern void __attribute__((overloadable))
3144    rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
3145#endif
3146
3147#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3148extern void __attribute__((overloadable))
3149    rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
3150#endif
3151
3152#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3153extern void __attribute__((overloadable))
3154    rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
3155#endif
3156
3157#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3158extern void __attribute__((overloadable))
3159    rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y, uint32_t z);
3160#endif
3161
3162#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3163extern void __attribute__((overloadable))
3164    rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
3165#endif
3166
3167#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3168extern void __attribute__((overloadable))
3169    rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
3170#endif
3171
3172#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3173extern void __attribute__((overloadable))
3174    rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
3175#endif
3176
3177#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3178extern void __attribute__((overloadable))
3179    rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y, uint32_t z);
3180#endif
3181
3182#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3183extern void __attribute__((overloadable))
3184    rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
3185#endif
3186
3187#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3188extern void __attribute__((overloadable))
3189    rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
3190#endif
3191
3192#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3193extern void __attribute__((overloadable))
3194    rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
3195#endif
3196
3197#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3198extern void __attribute__((overloadable))
3199    rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y, uint32_t z);
3200#endif
3201
3202#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3203extern void __attribute__((overloadable))
3204    rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
3205#endif
3206
3207#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3208extern void __attribute__((overloadable))
3209    rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
3210#endif
3211
3212#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3213extern void __attribute__((overloadable))
3214    rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
3215#endif
3216
3217#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3218extern void __attribute__((overloadable))
3219    rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y, uint32_t z);
3220#endif
3221
3222#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3223extern void __attribute__((overloadable))
3224    rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
3225#endif
3226
3227#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3228extern void __attribute__((overloadable))
3229    rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
3230#endif
3231
3232#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3233extern void __attribute__((overloadable))
3234    rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
3235#endif
3236
3237#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3238extern void __attribute__((overloadable))
3239    rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y, uint32_t z);
3240#endif
3241
3242#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3243extern void __attribute__((overloadable))
3244    rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
3245#endif
3246
3247#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3248extern void __attribute__((overloadable))
3249    rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
3250#endif
3251
3252#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3253extern void __attribute__((overloadable))
3254    rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
3255#endif
3256
3257#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3258extern void __attribute__((overloadable))
3259    rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y, uint32_t z);
3260#endif
3261
3262#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3263extern void __attribute__((overloadable))
3264    rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
3265#endif
3266
3267#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3268extern void __attribute__((overloadable))
3269    rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
3270#endif
3271
3272#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3273extern void __attribute__((overloadable))
3274    rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
3275#endif
3276
3277#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3278extern void __attribute__((overloadable))
3279    rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y, uint32_t z);
3280#endif
3281
3282#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3283extern void __attribute__((overloadable))
3284    rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
3285#endif
3286
3287#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3288extern void __attribute__((overloadable))
3289    rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
3290#endif
3291
3292#if (defined(RS_VERSION) && (RS_VERSION >= 18))
3293extern void __attribute__((overloadable))
3294    rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
3295#endif
3296
3297#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3298extern void __attribute__((overloadable))
3299    rsSetElementAt_half(rs_allocation a, half val, uint32_t x);
3300#endif
3301
3302#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3303extern void __attribute__((overloadable))
3304    rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x);
3305#endif
3306
3307#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3308extern void __attribute__((overloadable))
3309    rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x);
3310#endif
3311
3312#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3313extern void __attribute__((overloadable))
3314    rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x);
3315#endif
3316
3317#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3318extern void __attribute__((overloadable))
3319    rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y);
3320#endif
3321
3322#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3323extern void __attribute__((overloadable))
3324    rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y);
3325#endif
3326
3327#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3328extern void __attribute__((overloadable))
3329    rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y);
3330#endif
3331
3332#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3333extern void __attribute__((overloadable))
3334    rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y);
3335#endif
3336
3337#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3338extern void __attribute__((overloadable))
3339    rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y, uint32_t z);
3340#endif
3341
3342#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3343extern void __attribute__((overloadable))
3344    rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y, uint32_t z);
3345#endif
3346
3347#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3348extern void __attribute__((overloadable))
3349    rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y, uint32_t z);
3350#endif
3351
3352#if (defined(RS_VERSION) && (RS_VERSION >= 23))
3353extern void __attribute__((overloadable))
3354    rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y, uint32_t z);
3355#endif
3356
3357#endif // RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
3358