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