Home | History | Annotate | Download | only in include
      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))
     67 extern void __attribute__((overloadable))
     68     rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count,
     69                             rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip);
     70 #endif
     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))
    106 extern void __attribute__((overloadable))
    107     rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff,
    108                             uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width,
    109                             uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff,
    110                             uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace);
    111 #endif
    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))
    144 extern float2 __attribute__((overloadable))
    145     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x);
    146 #endif
    147 
    148 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    149 extern float3 __attribute__((overloadable))
    150     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x);
    151 #endif
    152 
    153 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    154 extern float4 __attribute__((overloadable))
    155     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x);
    156 #endif
    157 
    158 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    159 extern double2 __attribute__((overloadable))
    160     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x);
    161 #endif
    162 
    163 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    164 extern double3 __attribute__((overloadable))
    165     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x);
    166 #endif
    167 
    168 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    169 extern double4 __attribute__((overloadable))
    170     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x);
    171 #endif
    172 
    173 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    174 extern char2 __attribute__((overloadable))
    175     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x);
    176 #endif
    177 
    178 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    179 extern char3 __attribute__((overloadable))
    180     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x);
    181 #endif
    182 
    183 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    184 extern char4 __attribute__((overloadable))
    185     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x);
    186 #endif
    187 
    188 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    189 extern uchar2 __attribute__((overloadable))
    190     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x);
    191 #endif
    192 
    193 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    194 extern uchar3 __attribute__((overloadable))
    195     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x);
    196 #endif
    197 
    198 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    199 extern uchar4 __attribute__((overloadable))
    200     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x);
    201 #endif
    202 
    203 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    204 extern short2 __attribute__((overloadable))
    205     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x);
    206 #endif
    207 
    208 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    209 extern short3 __attribute__((overloadable))
    210     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x);
    211 #endif
    212 
    213 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    214 extern short4 __attribute__((overloadable))
    215     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x);
    216 #endif
    217 
    218 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    219 extern ushort2 __attribute__((overloadable))
    220     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x);
    221 #endif
    222 
    223 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    224 extern ushort3 __attribute__((overloadable))
    225     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x);
    226 #endif
    227 
    228 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    229 extern ushort4 __attribute__((overloadable))
    230     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x);
    231 #endif
    232 
    233 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    234 extern int2 __attribute__((overloadable))
    235     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x);
    236 #endif
    237 
    238 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    239 extern int3 __attribute__((overloadable))
    240     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x);
    241 #endif
    242 
    243 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    244 extern int4 __attribute__((overloadable))
    245     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x);
    246 #endif
    247 
    248 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    249 extern uint2 __attribute__((overloadable))
    250     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x);
    251 #endif
    252 
    253 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    254 extern uint3 __attribute__((overloadable))
    255     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x);
    256 #endif
    257 
    258 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    259 extern uint4 __attribute__((overloadable))
    260     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x);
    261 #endif
    262 
    263 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    264 extern long2 __attribute__((overloadable))
    265     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x);
    266 #endif
    267 
    268 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    269 extern long3 __attribute__((overloadable))
    270     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x);
    271 #endif
    272 
    273 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    274 extern long4 __attribute__((overloadable))
    275     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x);
    276 #endif
    277 
    278 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    279 extern ulong2 __attribute__((overloadable))
    280     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x);
    281 #endif
    282 
    283 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    284 extern ulong3 __attribute__((overloadable))
    285     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x);
    286 #endif
    287 
    288 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    289 extern ulong4 __attribute__((overloadable))
    290     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x);
    291 #endif
    292 
    293 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    294 extern float2 __attribute__((overloadable))
    295     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y);
    296 #endif
    297 
    298 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    299 extern float3 __attribute__((overloadable))
    300     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y);
    301 #endif
    302 
    303 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    304 extern float4 __attribute__((overloadable))
    305     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y);
    306 #endif
    307 
    308 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    309 extern double2 __attribute__((overloadable))
    310     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y);
    311 #endif
    312 
    313 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    314 extern double3 __attribute__((overloadable))
    315     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y);
    316 #endif
    317 
    318 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    319 extern double4 __attribute__((overloadable))
    320     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y);
    321 #endif
    322 
    323 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    324 extern char2 __attribute__((overloadable))
    325     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y);
    326 #endif
    327 
    328 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    329 extern char3 __attribute__((overloadable))
    330     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y);
    331 #endif
    332 
    333 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    334 extern char4 __attribute__((overloadable))
    335     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y);
    336 #endif
    337 
    338 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    339 extern uchar2 __attribute__((overloadable))
    340     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y);
    341 #endif
    342 
    343 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    344 extern uchar3 __attribute__((overloadable))
    345     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y);
    346 #endif
    347 
    348 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    349 extern uchar4 __attribute__((overloadable))
    350     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y);
    351 #endif
    352 
    353 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    354 extern short2 __attribute__((overloadable))
    355     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y);
    356 #endif
    357 
    358 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    359 extern short3 __attribute__((overloadable))
    360     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y);
    361 #endif
    362 
    363 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    364 extern short4 __attribute__((overloadable))
    365     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y);
    366 #endif
    367 
    368 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    369 extern ushort2 __attribute__((overloadable))
    370     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y);
    371 #endif
    372 
    373 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    374 extern ushort3 __attribute__((overloadable))
    375     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y);
    376 #endif
    377 
    378 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    379 extern ushort4 __attribute__((overloadable))
    380     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y);
    381 #endif
    382 
    383 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    384 extern int2 __attribute__((overloadable))
    385     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y);
    386 #endif
    387 
    388 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    389 extern int3 __attribute__((overloadable))
    390     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y);
    391 #endif
    392 
    393 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    394 extern int4 __attribute__((overloadable))
    395     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y);
    396 #endif
    397 
    398 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    399 extern uint2 __attribute__((overloadable))
    400     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y);
    401 #endif
    402 
    403 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    404 extern uint3 __attribute__((overloadable))
    405     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y);
    406 #endif
    407 
    408 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    409 extern uint4 __attribute__((overloadable))
    410     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y);
    411 #endif
    412 
    413 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    414 extern long2 __attribute__((overloadable))
    415     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y);
    416 #endif
    417 
    418 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    419 extern long3 __attribute__((overloadable))
    420     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y);
    421 #endif
    422 
    423 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    424 extern long4 __attribute__((overloadable))
    425     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y);
    426 #endif
    427 
    428 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    429 extern ulong2 __attribute__((overloadable))
    430     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y);
    431 #endif
    432 
    433 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    434 extern ulong3 __attribute__((overloadable))
    435     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y);
    436 #endif
    437 
    438 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    439 extern ulong4 __attribute__((overloadable))
    440     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y);
    441 #endif
    442 
    443 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    444 extern float2 __attribute__((overloadable))
    445     rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    446 #endif
    447 
    448 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    449 extern float3 __attribute__((overloadable))
    450     rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    451 #endif
    452 
    453 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    454 extern float4 __attribute__((overloadable))
    455     rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    456 #endif
    457 
    458 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    459 extern double2 __attribute__((overloadable))
    460     rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    461 #endif
    462 
    463 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    464 extern double3 __attribute__((overloadable))
    465     rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    466 #endif
    467 
    468 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    469 extern double4 __attribute__((overloadable))
    470     rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    471 #endif
    472 
    473 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    474 extern char2 __attribute__((overloadable))
    475     rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    476 #endif
    477 
    478 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    479 extern char3 __attribute__((overloadable))
    480     rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    481 #endif
    482 
    483 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    484 extern char4 __attribute__((overloadable))
    485     rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    486 #endif
    487 
    488 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    489 extern uchar2 __attribute__((overloadable))
    490     rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    491 #endif
    492 
    493 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    494 extern uchar3 __attribute__((overloadable))
    495     rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    496 #endif
    497 
    498 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    499 extern uchar4 __attribute__((overloadable))
    500     rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    501 #endif
    502 
    503 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    504 extern short2 __attribute__((overloadable))
    505     rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    506 #endif
    507 
    508 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    509 extern short3 __attribute__((overloadable))
    510     rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    511 #endif
    512 
    513 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    514 extern short4 __attribute__((overloadable))
    515     rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    516 #endif
    517 
    518 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    519 extern ushort2 __attribute__((overloadable))
    520     rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    521 #endif
    522 
    523 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    524 extern ushort3 __attribute__((overloadable))
    525     rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    526 #endif
    527 
    528 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    529 extern ushort4 __attribute__((overloadable))
    530     rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    531 #endif
    532 
    533 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    534 extern int2 __attribute__((overloadable))
    535     rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    536 #endif
    537 
    538 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    539 extern int3 __attribute__((overloadable))
    540     rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    541 #endif
    542 
    543 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    544 extern int4 __attribute__((overloadable))
    545     rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    546 #endif
    547 
    548 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    549 extern uint2 __attribute__((overloadable))
    550     rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    551 #endif
    552 
    553 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    554 extern uint3 __attribute__((overloadable))
    555     rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    556 #endif
    557 
    558 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    559 extern uint4 __attribute__((overloadable))
    560     rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    561 #endif
    562 
    563 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    564 extern long2 __attribute__((overloadable))
    565     rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    566 #endif
    567 
    568 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    569 extern long3 __attribute__((overloadable))
    570     rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    571 #endif
    572 
    573 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    574 extern long4 __attribute__((overloadable))
    575     rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    576 #endif
    577 
    578 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    579 extern ulong2 __attribute__((overloadable))
    580     rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    581 #endif
    582 
    583 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    584 extern ulong3 __attribute__((overloadable))
    585     rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    586 #endif
    587 
    588 #if (defined(RS_VERSION) && (RS_VERSION >= 22))
    589 extern ulong4 __attribute__((overloadable))
    590     rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
    591 #endif
    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))
    624 extern 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))
    629 extern 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))
    634 extern 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))
    639 extern 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))
    644 extern 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))
    649 extern 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))
    654 extern 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))
    659 extern 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))
    664 extern 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))
    669 extern 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))
    674 extern 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))
    679 extern 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))
    684 extern 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))
    689 extern 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))
    694 extern 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))
    699 extern 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))
    704 extern 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))
    709 extern 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))
    714 extern 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))
    719 extern 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))
    724 extern 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))
    729 extern 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))
    734 extern 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))
    739 extern 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))
    744 extern 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))
    749 extern 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))
    754 extern 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))
    759 extern 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))
    764 extern 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))
    769 extern 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))
    774 extern 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))
    779 extern 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))
    784 extern 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))
    789 extern 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))
    794 extern 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))
    799 extern 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))
    804 extern 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))
    809 extern 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))
    814 extern 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))
    819 extern 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))
    824 extern 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))
    829 extern 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))
    834 extern 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))
    839 extern 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))
    844 extern 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))
    849 extern 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))
    854 extern 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))
    859 extern 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))
    864 extern 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))
    869 extern 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))
    874 extern 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))
    879 extern 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))
    884 extern 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))
    889 extern 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))
    894 extern 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))
    899 extern 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))
    904 extern 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))
    909 extern 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))
    914 extern 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))
    919 extern 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))
    924 extern 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))
    929 extern 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))
    934 extern 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))
    939 extern 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))
    944 extern 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))
    949 extern 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))
    954 extern 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))
    959 extern 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))
    964 extern 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))
    969 extern 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))
    974 extern 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))
    979 extern 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))
    984 extern 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))
    989 extern 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))
    994 extern 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))
    999 extern 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))
   1004 extern 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))
   1009 extern 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))
   1014 extern 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))
   1019 extern 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))
   1024 extern 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))
   1029 extern 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))
   1034 extern 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))
   1039 extern 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))
   1044 extern 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))
   1049 extern 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))
   1054 extern 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))
   1059 extern 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))
   1064 extern 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))
   1069 extern 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  */
   1086 extern const void* __attribute__((overloadable))
   1087     rsGetElementAt(rs_allocation a, uint32_t x);
   1088 
   1089 extern const void* __attribute__((overloadable))
   1090     rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y);
   1091 
   1092 extern 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)
   1096 static 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)
   1103 static 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)
   1110 static 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)
   1117 static 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)
   1124 static 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)
   1131 static 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)
   1138 static 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)
   1145 static 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)
   1152 static 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)
   1159 static 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)
   1166 static 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)
   1173 static 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)
   1180 static 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)
   1187 static 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)
   1194 static 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)
   1201 static 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)
   1208 static 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)
   1215 static 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)
   1222 static 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)
   1229 static 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)
   1236 static 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)
   1243 static 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)
   1250 static 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)
   1257 static 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)
   1264 static 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)
   1271 static 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)
   1278 static 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)
   1285 static 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)
   1292 static 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)
   1299 static 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)
   1306 static 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)
   1313 static 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)
   1320 static 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)
   1327 static 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)
   1334 static 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)
   1341 static 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)
   1348 static 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)
   1355 static 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)
   1362 static 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)
   1369 static 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)
   1376 static inline float __attribute__((overloadable))
   1377     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y) {
   1378     return ((float *)rsGetElementAt(a, x, y))[0];
   1379 }
   1380 #endif
   1381 
   1382 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1383 static inline float2 __attribute__((overloadable))
   1384     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y) {
   1385     return ((float2 *)rsGetElementAt(a, x, y))[0];
   1386 }
   1387 #endif
   1388 
   1389 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1390 static inline float3 __attribute__((overloadable))
   1391     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y) {
   1392     return ((float3 *)rsGetElementAt(a, x, y))[0];
   1393 }
   1394 #endif
   1395 
   1396 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1397 static inline float4 __attribute__((overloadable))
   1398     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y) {
   1399     return ((float4 *)rsGetElementAt(a, x, y))[0];
   1400 }
   1401 #endif
   1402 
   1403 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1404 static inline double __attribute__((overloadable))
   1405     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y) {
   1406     return ((double *)rsGetElementAt(a, x, y))[0];
   1407 }
   1408 #endif
   1409 
   1410 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1411 static inline double2 __attribute__((overloadable))
   1412     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y) {
   1413     return ((double2 *)rsGetElementAt(a, x, y))[0];
   1414 }
   1415 #endif
   1416 
   1417 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1418 static inline double3 __attribute__((overloadable))
   1419     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y) {
   1420     return ((double3 *)rsGetElementAt(a, x, y))[0];
   1421 }
   1422 #endif
   1423 
   1424 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1425 static inline double4 __attribute__((overloadable))
   1426     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y) {
   1427     return ((double4 *)rsGetElementAt(a, x, y))[0];
   1428 }
   1429 #endif
   1430 
   1431 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1432 static inline char __attribute__((overloadable))
   1433     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y) {
   1434     return ((char *)rsGetElementAt(a, x, y))[0];
   1435 }
   1436 #endif
   1437 
   1438 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1439 static inline char2 __attribute__((overloadable))
   1440     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y) {
   1441     return ((char2 *)rsGetElementAt(a, x, y))[0];
   1442 }
   1443 #endif
   1444 
   1445 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1446 static inline char3 __attribute__((overloadable))
   1447     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y) {
   1448     return ((char3 *)rsGetElementAt(a, x, y))[0];
   1449 }
   1450 #endif
   1451 
   1452 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1453 static inline char4 __attribute__((overloadable))
   1454     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y) {
   1455     return ((char4 *)rsGetElementAt(a, x, y))[0];
   1456 }
   1457 #endif
   1458 
   1459 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1460 static inline uchar __attribute__((overloadable))
   1461     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y) {
   1462     return ((uchar *)rsGetElementAt(a, x, y))[0];
   1463 }
   1464 #endif
   1465 
   1466 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1467 static inline uchar2 __attribute__((overloadable))
   1468     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y) {
   1469     return ((uchar2 *)rsGetElementAt(a, x, y))[0];
   1470 }
   1471 #endif
   1472 
   1473 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1474 static inline uchar3 __attribute__((overloadable))
   1475     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y) {
   1476     return ((uchar3 *)rsGetElementAt(a, x, y))[0];
   1477 }
   1478 #endif
   1479 
   1480 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1481 static inline uchar4 __attribute__((overloadable))
   1482     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y) {
   1483     return ((uchar4 *)rsGetElementAt(a, x, y))[0];
   1484 }
   1485 #endif
   1486 
   1487 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1488 static inline short __attribute__((overloadable))
   1489     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y) {
   1490     return ((short *)rsGetElementAt(a, x, y))[0];
   1491 }
   1492 #endif
   1493 
   1494 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1495 static inline short2 __attribute__((overloadable))
   1496     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y) {
   1497     return ((short2 *)rsGetElementAt(a, x, y))[0];
   1498 }
   1499 #endif
   1500 
   1501 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1502 static inline short3 __attribute__((overloadable))
   1503     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y) {
   1504     return ((short3 *)rsGetElementAt(a, x, y))[0];
   1505 }
   1506 #endif
   1507 
   1508 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1509 static inline short4 __attribute__((overloadable))
   1510     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y) {
   1511     return ((short4 *)rsGetElementAt(a, x, y))[0];
   1512 }
   1513 #endif
   1514 
   1515 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1516 static inline ushort __attribute__((overloadable))
   1517     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y) {
   1518     return ((ushort *)rsGetElementAt(a, x, y))[0];
   1519 }
   1520 #endif
   1521 
   1522 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1523 static inline ushort2 __attribute__((overloadable))
   1524     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y) {
   1525     return ((ushort2 *)rsGetElementAt(a, x, y))[0];
   1526 }
   1527 #endif
   1528 
   1529 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1530 static inline ushort3 __attribute__((overloadable))
   1531     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y) {
   1532     return ((ushort3 *)rsGetElementAt(a, x, y))[0];
   1533 }
   1534 #endif
   1535 
   1536 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1537 static inline ushort4 __attribute__((overloadable))
   1538     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y) {
   1539     return ((ushort4 *)rsGetElementAt(a, x, y))[0];
   1540 }
   1541 #endif
   1542 
   1543 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1544 static inline int __attribute__((overloadable))
   1545     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y) {
   1546     return ((int *)rsGetElementAt(a, x, y))[0];
   1547 }
   1548 #endif
   1549 
   1550 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1551 static inline int2 __attribute__((overloadable))
   1552     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y) {
   1553     return ((int2 *)rsGetElementAt(a, x, y))[0];
   1554 }
   1555 #endif
   1556 
   1557 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1558 static inline int3 __attribute__((overloadable))
   1559     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y) {
   1560     return ((int3 *)rsGetElementAt(a, x, y))[0];
   1561 }
   1562 #endif
   1563 
   1564 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1565 static inline int4 __attribute__((overloadable))
   1566     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y) {
   1567     return ((int4 *)rsGetElementAt(a, x, y))[0];
   1568 }
   1569 #endif
   1570 
   1571 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1572 static inline uint __attribute__((overloadable))
   1573     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y) {
   1574     return ((uint *)rsGetElementAt(a, x, y))[0];
   1575 }
   1576 #endif
   1577 
   1578 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1579 static inline uint2 __attribute__((overloadable))
   1580     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y) {
   1581     return ((uint2 *)rsGetElementAt(a, x, y))[0];
   1582 }
   1583 #endif
   1584 
   1585 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1586 static inline uint3 __attribute__((overloadable))
   1587     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y) {
   1588     return ((uint3 *)rsGetElementAt(a, x, y))[0];
   1589 }
   1590 #endif
   1591 
   1592 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1593 static inline uint4 __attribute__((overloadable))
   1594     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y) {
   1595     return ((uint4 *)rsGetElementAt(a, x, y))[0];
   1596 }
   1597 #endif
   1598 
   1599 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1600 static inline long __attribute__((overloadable))
   1601     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y) {
   1602     return ((long *)rsGetElementAt(a, x, y))[0];
   1603 }
   1604 #endif
   1605 
   1606 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1607 static inline long2 __attribute__((overloadable))
   1608     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y) {
   1609     return ((long2 *)rsGetElementAt(a, x, y))[0];
   1610 }
   1611 #endif
   1612 
   1613 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1614 static inline long3 __attribute__((overloadable))
   1615     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y) {
   1616     return ((long3 *)rsGetElementAt(a, x, y))[0];
   1617 }
   1618 #endif
   1619 
   1620 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1621 static inline long4 __attribute__((overloadable))
   1622     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y) {
   1623     return ((long4 *)rsGetElementAt(a, x, y))[0];
   1624 }
   1625 #endif
   1626 
   1627 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1628 static inline ulong __attribute__((overloadable))
   1629     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y) {
   1630     return ((ulong *)rsGetElementAt(a, x, y))[0];
   1631 }
   1632 #endif
   1633 
   1634 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1635 static inline ulong2 __attribute__((overloadable))
   1636     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y) {
   1637     return ((ulong2 *)rsGetElementAt(a, x, y))[0];
   1638 }
   1639 #endif
   1640 
   1641 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1642 static inline ulong3 __attribute__((overloadable))
   1643     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y) {
   1644     return ((ulong3 *)rsGetElementAt(a, x, y))[0];
   1645 }
   1646 #endif
   1647 
   1648 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1649 static inline ulong4 __attribute__((overloadable))
   1650     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y) {
   1651     return ((ulong4 *)rsGetElementAt(a, x, y))[0];
   1652 }
   1653 #endif
   1654 
   1655 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1656 static inline float __attribute__((overloadable))
   1657     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1658     return ((float *)rsGetElementAt(a, x, y, z))[0];
   1659 }
   1660 #endif
   1661 
   1662 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1663 static inline float2 __attribute__((overloadable))
   1664     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1665     return ((float2 *)rsGetElementAt(a, x, y, z))[0];
   1666 }
   1667 #endif
   1668 
   1669 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1670 static inline float3 __attribute__((overloadable))
   1671     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1672     return ((float3 *)rsGetElementAt(a, x, y, z))[0];
   1673 }
   1674 #endif
   1675 
   1676 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1677 static inline float4 __attribute__((overloadable))
   1678     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1679     return ((float4 *)rsGetElementAt(a, x, y, z))[0];
   1680 }
   1681 #endif
   1682 
   1683 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1684 static inline double __attribute__((overloadable))
   1685     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1686     return ((double *)rsGetElementAt(a, x, y, z))[0];
   1687 }
   1688 #endif
   1689 
   1690 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1691 static inline double2 __attribute__((overloadable))
   1692     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1693     return ((double2 *)rsGetElementAt(a, x, y, z))[0];
   1694 }
   1695 #endif
   1696 
   1697 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1698 static inline double3 __attribute__((overloadable))
   1699     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1700     return ((double3 *)rsGetElementAt(a, x, y, z))[0];
   1701 }
   1702 #endif
   1703 
   1704 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1705 static inline double4 __attribute__((overloadable))
   1706     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1707     return ((double4 *)rsGetElementAt(a, x, y, z))[0];
   1708 }
   1709 #endif
   1710 
   1711 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1712 static inline char __attribute__((overloadable))
   1713     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1714     return ((char *)rsGetElementAt(a, x, y, z))[0];
   1715 }
   1716 #endif
   1717 
   1718 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1719 static inline char2 __attribute__((overloadable))
   1720     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1721     return ((char2 *)rsGetElementAt(a, x, y, z))[0];
   1722 }
   1723 #endif
   1724 
   1725 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1726 static inline char3 __attribute__((overloadable))
   1727     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1728     return ((char3 *)rsGetElementAt(a, x, y, z))[0];
   1729 }
   1730 #endif
   1731 
   1732 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1733 static inline char4 __attribute__((overloadable))
   1734     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1735     return ((char4 *)rsGetElementAt(a, x, y, z))[0];
   1736 }
   1737 #endif
   1738 
   1739 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1740 static inline uchar __attribute__((overloadable))
   1741     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1742     return ((uchar *)rsGetElementAt(a, x, y, z))[0];
   1743 }
   1744 #endif
   1745 
   1746 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1747 static inline uchar2 __attribute__((overloadable))
   1748     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1749     return ((uchar2 *)rsGetElementAt(a, x, y, z))[0];
   1750 }
   1751 #endif
   1752 
   1753 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1754 static inline uchar3 __attribute__((overloadable))
   1755     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1756     return ((uchar3 *)rsGetElementAt(a, x, y, z))[0];
   1757 }
   1758 #endif
   1759 
   1760 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1761 static inline uchar4 __attribute__((overloadable))
   1762     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1763     return ((uchar4 *)rsGetElementAt(a, x, y, z))[0];
   1764 }
   1765 #endif
   1766 
   1767 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1768 static inline short __attribute__((overloadable))
   1769     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1770     return ((short *)rsGetElementAt(a, x, y, z))[0];
   1771 }
   1772 #endif
   1773 
   1774 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1775 static inline short2 __attribute__((overloadable))
   1776     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1777     return ((short2 *)rsGetElementAt(a, x, y, z))[0];
   1778 }
   1779 #endif
   1780 
   1781 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1782 static inline short3 __attribute__((overloadable))
   1783     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1784     return ((short3 *)rsGetElementAt(a, x, y, z))[0];
   1785 }
   1786 #endif
   1787 
   1788 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1789 static inline short4 __attribute__((overloadable))
   1790     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1791     return ((short4 *)rsGetElementAt(a, x, y, z))[0];
   1792 }
   1793 #endif
   1794 
   1795 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1796 static inline ushort __attribute__((overloadable))
   1797     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1798     return ((ushort *)rsGetElementAt(a, x, y, z))[0];
   1799 }
   1800 #endif
   1801 
   1802 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1803 static inline ushort2 __attribute__((overloadable))
   1804     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1805     return ((ushort2 *)rsGetElementAt(a, x, y, z))[0];
   1806 }
   1807 #endif
   1808 
   1809 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1810 static inline ushort3 __attribute__((overloadable))
   1811     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1812     return ((ushort3 *)rsGetElementAt(a, x, y, z))[0];
   1813 }
   1814 #endif
   1815 
   1816 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1817 static inline ushort4 __attribute__((overloadable))
   1818     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1819     return ((ushort4 *)rsGetElementAt(a, x, y, z))[0];
   1820 }
   1821 #endif
   1822 
   1823 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1824 static inline int __attribute__((overloadable))
   1825     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1826     return ((int *)rsGetElementAt(a, x, y, z))[0];
   1827 }
   1828 #endif
   1829 
   1830 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1831 static inline int2 __attribute__((overloadable))
   1832     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1833     return ((int2 *)rsGetElementAt(a, x, y, z))[0];
   1834 }
   1835 #endif
   1836 
   1837 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1838 static inline int3 __attribute__((overloadable))
   1839     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1840     return ((int3 *)rsGetElementAt(a, x, y, z))[0];
   1841 }
   1842 #endif
   1843 
   1844 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1845 static inline int4 __attribute__((overloadable))
   1846     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1847     return ((int4 *)rsGetElementAt(a, x, y, z))[0];
   1848 }
   1849 #endif
   1850 
   1851 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1852 static inline uint __attribute__((overloadable))
   1853     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1854     return ((uint *)rsGetElementAt(a, x, y, z))[0];
   1855 }
   1856 #endif
   1857 
   1858 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1859 static inline uint2 __attribute__((overloadable))
   1860     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1861     return ((uint2 *)rsGetElementAt(a, x, y, z))[0];
   1862 }
   1863 #endif
   1864 
   1865 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1866 static inline uint3 __attribute__((overloadable))
   1867     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1868     return ((uint3 *)rsGetElementAt(a, x, y, z))[0];
   1869 }
   1870 #endif
   1871 
   1872 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1873 static inline uint4 __attribute__((overloadable))
   1874     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1875     return ((uint4 *)rsGetElementAt(a, x, y, z))[0];
   1876 }
   1877 #endif
   1878 
   1879 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1880 static inline long __attribute__((overloadable))
   1881     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1882     return ((long *)rsGetElementAt(a, x, y, z))[0];
   1883 }
   1884 #endif
   1885 
   1886 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1887 static inline long2 __attribute__((overloadable))
   1888     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1889     return ((long2 *)rsGetElementAt(a, x, y, z))[0];
   1890 }
   1891 #endif
   1892 
   1893 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1894 static inline long3 __attribute__((overloadable))
   1895     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1896     return ((long3 *)rsGetElementAt(a, x, y, z))[0];
   1897 }
   1898 #endif
   1899 
   1900 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1901 static inline long4 __attribute__((overloadable))
   1902     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1903     return ((long4 *)rsGetElementAt(a, x, y, z))[0];
   1904 }
   1905 #endif
   1906 
   1907 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1908 static inline ulong __attribute__((overloadable))
   1909     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1910     return ((ulong *)rsGetElementAt(a, x, y, z))[0];
   1911 }
   1912 #endif
   1913 
   1914 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1915 static inline ulong2 __attribute__((overloadable))
   1916     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1917     return ((ulong2 *)rsGetElementAt(a, x, y, z))[0];
   1918 }
   1919 #endif
   1920 
   1921 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1922 static inline ulong3 __attribute__((overloadable))
   1923     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1924     return ((ulong3 *)rsGetElementAt(a, x, y, z))[0];
   1925 }
   1926 #endif
   1927 
   1928 #if !defined(RS_VERSION) || (RS_VERSION <= 17)
   1929 static inline ulong4 __attribute__((overloadable))
   1930     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
   1931     return ((ulong4 *)rsGetElementAt(a, x, y, z))[0];
   1932 }
   1933 #endif
   1934 
   1935 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1936 extern float __attribute__((overloadable))
   1937     rsGetElementAt_float(rs_allocation a, uint32_t x);
   1938 #endif
   1939 
   1940 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1941 extern float2 __attribute__((overloadable))
   1942     rsGetElementAt_float2(rs_allocation a, uint32_t x);
   1943 #endif
   1944 
   1945 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1946 extern float3 __attribute__((overloadable))
   1947     rsGetElementAt_float3(rs_allocation a, uint32_t x);
   1948 #endif
   1949 
   1950 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1951 extern float4 __attribute__((overloadable))
   1952     rsGetElementAt_float4(rs_allocation a, uint32_t x);
   1953 #endif
   1954 
   1955 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1956 extern double __attribute__((overloadable))
   1957     rsGetElementAt_double(rs_allocation a, uint32_t x);
   1958 #endif
   1959 
   1960 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1961 extern double2 __attribute__((overloadable))
   1962     rsGetElementAt_double2(rs_allocation a, uint32_t x);
   1963 #endif
   1964 
   1965 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1966 extern double3 __attribute__((overloadable))
   1967     rsGetElementAt_double3(rs_allocation a, uint32_t x);
   1968 #endif
   1969 
   1970 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1971 extern double4 __attribute__((overloadable))
   1972     rsGetElementAt_double4(rs_allocation a, uint32_t x);
   1973 #endif
   1974 
   1975 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1976 extern char __attribute__((overloadable))
   1977     rsGetElementAt_char(rs_allocation a, uint32_t x);
   1978 #endif
   1979 
   1980 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1981 extern char2 __attribute__((overloadable))
   1982     rsGetElementAt_char2(rs_allocation a, uint32_t x);
   1983 #endif
   1984 
   1985 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1986 extern char3 __attribute__((overloadable))
   1987     rsGetElementAt_char3(rs_allocation a, uint32_t x);
   1988 #endif
   1989 
   1990 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1991 extern char4 __attribute__((overloadable))
   1992     rsGetElementAt_char4(rs_allocation a, uint32_t x);
   1993 #endif
   1994 
   1995 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   1996 extern uchar __attribute__((overloadable))
   1997     rsGetElementAt_uchar(rs_allocation a, uint32_t x);
   1998 #endif
   1999 
   2000 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2001 extern uchar2 __attribute__((overloadable))
   2002     rsGetElementAt_uchar2(rs_allocation a, uint32_t x);
   2003 #endif
   2004 
   2005 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2006 extern uchar3 __attribute__((overloadable))
   2007     rsGetElementAt_uchar3(rs_allocation a, uint32_t x);
   2008 #endif
   2009 
   2010 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2011 extern uchar4 __attribute__((overloadable))
   2012     rsGetElementAt_uchar4(rs_allocation a, uint32_t x);
   2013 #endif
   2014 
   2015 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2016 extern short __attribute__((overloadable))
   2017     rsGetElementAt_short(rs_allocation a, uint32_t x);
   2018 #endif
   2019 
   2020 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2021 extern short2 __attribute__((overloadable))
   2022     rsGetElementAt_short2(rs_allocation a, uint32_t x);
   2023 #endif
   2024 
   2025 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2026 extern short3 __attribute__((overloadable))
   2027     rsGetElementAt_short3(rs_allocation a, uint32_t x);
   2028 #endif
   2029 
   2030 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2031 extern short4 __attribute__((overloadable))
   2032     rsGetElementAt_short4(rs_allocation a, uint32_t x);
   2033 #endif
   2034 
   2035 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2036 extern ushort __attribute__((overloadable))
   2037     rsGetElementAt_ushort(rs_allocation a, uint32_t x);
   2038 #endif
   2039 
   2040 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2041 extern ushort2 __attribute__((overloadable))
   2042     rsGetElementAt_ushort2(rs_allocation a, uint32_t x);
   2043 #endif
   2044 
   2045 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2046 extern ushort3 __attribute__((overloadable))
   2047     rsGetElementAt_ushort3(rs_allocation a, uint32_t x);
   2048 #endif
   2049 
   2050 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2051 extern ushort4 __attribute__((overloadable))
   2052     rsGetElementAt_ushort4(rs_allocation a, uint32_t x);
   2053 #endif
   2054 
   2055 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2056 extern int __attribute__((overloadable))
   2057     rsGetElementAt_int(rs_allocation a, uint32_t x);
   2058 #endif
   2059 
   2060 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2061 extern int2 __attribute__((overloadable))
   2062     rsGetElementAt_int2(rs_allocation a, uint32_t x);
   2063 #endif
   2064 
   2065 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2066 extern int3 __attribute__((overloadable))
   2067     rsGetElementAt_int3(rs_allocation a, uint32_t x);
   2068 #endif
   2069 
   2070 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2071 extern int4 __attribute__((overloadable))
   2072     rsGetElementAt_int4(rs_allocation a, uint32_t x);
   2073 #endif
   2074 
   2075 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2076 extern uint __attribute__((overloadable))
   2077     rsGetElementAt_uint(rs_allocation a, uint32_t x);
   2078 #endif
   2079 
   2080 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2081 extern uint2 __attribute__((overloadable))
   2082     rsGetElementAt_uint2(rs_allocation a, uint32_t x);
   2083 #endif
   2084 
   2085 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2086 extern uint3 __attribute__((overloadable))
   2087     rsGetElementAt_uint3(rs_allocation a, uint32_t x);
   2088 #endif
   2089 
   2090 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2091 extern uint4 __attribute__((overloadable))
   2092     rsGetElementAt_uint4(rs_allocation a, uint32_t x);
   2093 #endif
   2094 
   2095 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2096 extern long __attribute__((overloadable))
   2097     rsGetElementAt_long(rs_allocation a, uint32_t x);
   2098 #endif
   2099 
   2100 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2101 extern long2 __attribute__((overloadable))
   2102     rsGetElementAt_long2(rs_allocation a, uint32_t x);
   2103 #endif
   2104 
   2105 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2106 extern long3 __attribute__((overloadable))
   2107     rsGetElementAt_long3(rs_allocation a, uint32_t x);
   2108 #endif
   2109 
   2110 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2111 extern long4 __attribute__((overloadable))
   2112     rsGetElementAt_long4(rs_allocation a, uint32_t x);
   2113 #endif
   2114 
   2115 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2116 extern ulong __attribute__((overloadable))
   2117     rsGetElementAt_ulong(rs_allocation a, uint32_t x);
   2118 #endif
   2119 
   2120 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2121 extern ulong2 __attribute__((overloadable))
   2122     rsGetElementAt_ulong2(rs_allocation a, uint32_t x);
   2123 #endif
   2124 
   2125 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2126 extern ulong3 __attribute__((overloadable))
   2127     rsGetElementAt_ulong3(rs_allocation a, uint32_t x);
   2128 #endif
   2129 
   2130 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2131 extern ulong4 __attribute__((overloadable))
   2132     rsGetElementAt_ulong4(rs_allocation a, uint32_t x);
   2133 #endif
   2134 
   2135 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2136 extern float __attribute__((overloadable))
   2137     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y);
   2138 #endif
   2139 
   2140 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2141 extern float2 __attribute__((overloadable))
   2142     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y);
   2143 #endif
   2144 
   2145 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2146 extern float3 __attribute__((overloadable))
   2147     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y);
   2148 #endif
   2149 
   2150 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2151 extern float4 __attribute__((overloadable))
   2152     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y);
   2153 #endif
   2154 
   2155 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2156 extern double __attribute__((overloadable))
   2157     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y);
   2158 #endif
   2159 
   2160 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2161 extern double2 __attribute__((overloadable))
   2162     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y);
   2163 #endif
   2164 
   2165 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2166 extern double3 __attribute__((overloadable))
   2167     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y);
   2168 #endif
   2169 
   2170 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2171 extern double4 __attribute__((overloadable))
   2172     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y);
   2173 #endif
   2174 
   2175 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2176 extern char __attribute__((overloadable))
   2177     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y);
   2178 #endif
   2179 
   2180 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2181 extern char2 __attribute__((overloadable))
   2182     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y);
   2183 #endif
   2184 
   2185 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2186 extern char3 __attribute__((overloadable))
   2187     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y);
   2188 #endif
   2189 
   2190 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2191 extern char4 __attribute__((overloadable))
   2192     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y);
   2193 #endif
   2194 
   2195 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2196 extern uchar __attribute__((overloadable))
   2197     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y);
   2198 #endif
   2199 
   2200 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2201 extern uchar2 __attribute__((overloadable))
   2202     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y);
   2203 #endif
   2204 
   2205 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2206 extern uchar3 __attribute__((overloadable))
   2207     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y);
   2208 #endif
   2209 
   2210 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2211 extern uchar4 __attribute__((overloadable))
   2212     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y);
   2213 #endif
   2214 
   2215 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2216 extern short __attribute__((overloadable))
   2217     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y);
   2218 #endif
   2219 
   2220 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2221 extern short2 __attribute__((overloadable))
   2222     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y);
   2223 #endif
   2224 
   2225 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2226 extern short3 __attribute__((overloadable))
   2227     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y);
   2228 #endif
   2229 
   2230 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2231 extern short4 __attribute__((overloadable))
   2232     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y);
   2233 #endif
   2234 
   2235 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2236 extern ushort __attribute__((overloadable))
   2237     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y);
   2238 #endif
   2239 
   2240 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2241 extern ushort2 __attribute__((overloadable))
   2242     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y);
   2243 #endif
   2244 
   2245 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2246 extern ushort3 __attribute__((overloadable))
   2247     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y);
   2248 #endif
   2249 
   2250 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2251 extern ushort4 __attribute__((overloadable))
   2252     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y);
   2253 #endif
   2254 
   2255 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2256 extern int __attribute__((overloadable))
   2257     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y);
   2258 #endif
   2259 
   2260 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2261 extern int2 __attribute__((overloadable))
   2262     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y);
   2263 #endif
   2264 
   2265 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2266 extern int3 __attribute__((overloadable))
   2267     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y);
   2268 #endif
   2269 
   2270 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2271 extern int4 __attribute__((overloadable))
   2272     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y);
   2273 #endif
   2274 
   2275 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2276 extern uint __attribute__((overloadable))
   2277     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y);
   2278 #endif
   2279 
   2280 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2281 extern uint2 __attribute__((overloadable))
   2282     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y);
   2283 #endif
   2284 
   2285 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2286 extern uint3 __attribute__((overloadable))
   2287     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y);
   2288 #endif
   2289 
   2290 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2291 extern uint4 __attribute__((overloadable))
   2292     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y);
   2293 #endif
   2294 
   2295 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2296 extern long __attribute__((overloadable))
   2297     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y);
   2298 #endif
   2299 
   2300 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2301 extern long2 __attribute__((overloadable))
   2302     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y);
   2303 #endif
   2304 
   2305 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2306 extern long3 __attribute__((overloadable))
   2307     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y);
   2308 #endif
   2309 
   2310 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2311 extern long4 __attribute__((overloadable))
   2312     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y);
   2313 #endif
   2314 
   2315 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2316 extern ulong __attribute__((overloadable))
   2317     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y);
   2318 #endif
   2319 
   2320 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2321 extern ulong2 __attribute__((overloadable))
   2322     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y);
   2323 #endif
   2324 
   2325 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2326 extern ulong3 __attribute__((overloadable))
   2327     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y);
   2328 #endif
   2329 
   2330 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2331 extern ulong4 __attribute__((overloadable))
   2332     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y);
   2333 #endif
   2334 
   2335 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2336 extern float __attribute__((overloadable))
   2337     rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2338 #endif
   2339 
   2340 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2341 extern float2 __attribute__((overloadable))
   2342     rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2343 #endif
   2344 
   2345 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2346 extern float3 __attribute__((overloadable))
   2347     rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2348 #endif
   2349 
   2350 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2351 extern float4 __attribute__((overloadable))
   2352     rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2353 #endif
   2354 
   2355 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2356 extern double __attribute__((overloadable))
   2357     rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2358 #endif
   2359 
   2360 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2361 extern double2 __attribute__((overloadable))
   2362     rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2363 #endif
   2364 
   2365 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2366 extern double3 __attribute__((overloadable))
   2367     rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2368 #endif
   2369 
   2370 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2371 extern double4 __attribute__((overloadable))
   2372     rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2373 #endif
   2374 
   2375 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2376 extern char __attribute__((overloadable))
   2377     rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2378 #endif
   2379 
   2380 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2381 extern char2 __attribute__((overloadable))
   2382     rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2383 #endif
   2384 
   2385 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2386 extern char3 __attribute__((overloadable))
   2387     rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2388 #endif
   2389 
   2390 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2391 extern char4 __attribute__((overloadable))
   2392     rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2393 #endif
   2394 
   2395 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2396 extern uchar __attribute__((overloadable))
   2397     rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2398 #endif
   2399 
   2400 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2401 extern uchar2 __attribute__((overloadable))
   2402     rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2403 #endif
   2404 
   2405 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2406 extern uchar3 __attribute__((overloadable))
   2407     rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2408 #endif
   2409 
   2410 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2411 extern uchar4 __attribute__((overloadable))
   2412     rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2413 #endif
   2414 
   2415 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2416 extern short __attribute__((overloadable))
   2417     rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2418 #endif
   2419 
   2420 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2421 extern short2 __attribute__((overloadable))
   2422     rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2423 #endif
   2424 
   2425 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2426 extern short3 __attribute__((overloadable))
   2427     rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2428 #endif
   2429 
   2430 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2431 extern short4 __attribute__((overloadable))
   2432     rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2433 #endif
   2434 
   2435 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2436 extern ushort __attribute__((overloadable))
   2437     rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2438 #endif
   2439 
   2440 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2441 extern ushort2 __attribute__((overloadable))
   2442     rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2443 #endif
   2444 
   2445 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2446 extern ushort3 __attribute__((overloadable))
   2447     rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2448 #endif
   2449 
   2450 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2451 extern ushort4 __attribute__((overloadable))
   2452     rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2453 #endif
   2454 
   2455 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2456 extern int __attribute__((overloadable))
   2457     rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2458 #endif
   2459 
   2460 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2461 extern int2 __attribute__((overloadable))
   2462     rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2463 #endif
   2464 
   2465 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2466 extern int3 __attribute__((overloadable))
   2467     rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2468 #endif
   2469 
   2470 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2471 extern int4 __attribute__((overloadable))
   2472     rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2473 #endif
   2474 
   2475 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2476 extern uint __attribute__((overloadable))
   2477     rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2478 #endif
   2479 
   2480 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2481 extern uint2 __attribute__((overloadable))
   2482     rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2483 #endif
   2484 
   2485 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2486 extern uint3 __attribute__((overloadable))
   2487     rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2488 #endif
   2489 
   2490 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2491 extern uint4 __attribute__((overloadable))
   2492     rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2493 #endif
   2494 
   2495 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2496 extern long __attribute__((overloadable))
   2497     rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2498 #endif
   2499 
   2500 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2501 extern long2 __attribute__((overloadable))
   2502     rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2503 #endif
   2504 
   2505 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2506 extern long3 __attribute__((overloadable))
   2507     rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2508 #endif
   2509 
   2510 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2511 extern long4 __attribute__((overloadable))
   2512     rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2513 #endif
   2514 
   2515 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2516 extern ulong __attribute__((overloadable))
   2517     rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2518 #endif
   2519 
   2520 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2521 extern ulong2 __attribute__((overloadable))
   2522     rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2523 #endif
   2524 
   2525 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2526 extern ulong3 __attribute__((overloadable))
   2527     rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2528 #endif
   2529 
   2530 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2531 extern ulong4 __attribute__((overloadable))
   2532     rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2533 #endif
   2534 
   2535 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2536 extern half __attribute__((overloadable))
   2537     rsGetElementAt_half(rs_allocation a, uint32_t x);
   2538 #endif
   2539 
   2540 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2541 extern half2 __attribute__((overloadable))
   2542     rsGetElementAt_half2(rs_allocation a, uint32_t x);
   2543 #endif
   2544 
   2545 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2546 extern half3 __attribute__((overloadable))
   2547     rsGetElementAt_half3(rs_allocation a, uint32_t x);
   2548 #endif
   2549 
   2550 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2551 extern half4 __attribute__((overloadable))
   2552     rsGetElementAt_half4(rs_allocation a, uint32_t x);
   2553 #endif
   2554 
   2555 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2556 extern half __attribute__((overloadable))
   2557     rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y);
   2558 #endif
   2559 
   2560 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2561 extern half2 __attribute__((overloadable))
   2562     rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y);
   2563 #endif
   2564 
   2565 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2566 extern half3 __attribute__((overloadable))
   2567     rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y);
   2568 #endif
   2569 
   2570 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2571 extern half4 __attribute__((overloadable))
   2572     rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y);
   2573 #endif
   2574 
   2575 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2576 extern half __attribute__((overloadable))
   2577     rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2578 #endif
   2579 
   2580 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2581 extern half2 __attribute__((overloadable))
   2582     rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2583 #endif
   2584 
   2585 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2586 extern half3 __attribute__((overloadable))
   2587     rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2588 #endif
   2589 
   2590 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   2591 extern half4 __attribute__((overloadable))
   2592     rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
   2593 #endif
   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))
   2607 extern 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))
   2623 extern 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))
   2639 extern 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))
   2660 extern float4 __attribute__((overloadable))
   2661     rsSample(rs_allocation a, rs_sampler s, float location);
   2662 #endif
   2663 
   2664 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
   2665 extern float4 __attribute__((overloadable))
   2666     rsSample(rs_allocation a, rs_sampler s, float location, float lod);
   2667 #endif
   2668 
   2669 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
   2670 extern float4 __attribute__((overloadable))
   2671     rsSample(rs_allocation a, rs_sampler s, float2 location);
   2672 #endif
   2673 
   2674 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
   2675 extern float4 __attribute__((overloadable))
   2676     rsSample(rs_allocation a, rs_sampler s, float2 location, float lod);
   2677 #endif
   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))
   2696 extern void __attribute__((overloadable))
   2697     rsSetElementAt(rs_allocation a, void* ptr, uint32_t x);
   2698 #endif
   2699 
   2700 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2701 extern void __attribute__((overloadable))
   2702     rsSetElementAt(rs_allocation a, void* ptr, uint32_t x, uint32_t y);
   2703 #endif
   2704 
   2705 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2706 extern void __attribute__((overloadable))
   2707     rsSetElementAt_float(rs_allocation a, float val, uint32_t x);
   2708 #endif
   2709 
   2710 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2711 extern void __attribute__((overloadable))
   2712     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x);
   2713 #endif
   2714 
   2715 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2716 extern void __attribute__((overloadable))
   2717     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x);
   2718 #endif
   2719 
   2720 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2721 extern void __attribute__((overloadable))
   2722     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x);
   2723 #endif
   2724 
   2725 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2726 extern void __attribute__((overloadable))
   2727     rsSetElementAt_double(rs_allocation a, double val, uint32_t x);
   2728 #endif
   2729 
   2730 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2731 extern void __attribute__((overloadable))
   2732     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x);
   2733 #endif
   2734 
   2735 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2736 extern void __attribute__((overloadable))
   2737     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x);
   2738 #endif
   2739 
   2740 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2741 extern void __attribute__((overloadable))
   2742     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x);
   2743 #endif
   2744 
   2745 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2746 extern void __attribute__((overloadable))
   2747     rsSetElementAt_char(rs_allocation a, char val, uint32_t x);
   2748 #endif
   2749 
   2750 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2751 extern void __attribute__((overloadable))
   2752     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x);
   2753 #endif
   2754 
   2755 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2756 extern void __attribute__((overloadable))
   2757     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x);
   2758 #endif
   2759 
   2760 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2761 extern void __attribute__((overloadable))
   2762     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x);
   2763 #endif
   2764 
   2765 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2766 extern void __attribute__((overloadable))
   2767     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x);
   2768 #endif
   2769 
   2770 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2771 extern void __attribute__((overloadable))
   2772     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x);
   2773 #endif
   2774 
   2775 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2776 extern void __attribute__((overloadable))
   2777     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x);
   2778 #endif
   2779 
   2780 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2781 extern void __attribute__((overloadable))
   2782     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x);
   2783 #endif
   2784 
   2785 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2786 extern void __attribute__((overloadable))
   2787     rsSetElementAt_short(rs_allocation a, short val, uint32_t x);
   2788 #endif
   2789 
   2790 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2791 extern void __attribute__((overloadable))
   2792     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x);
   2793 #endif
   2794 
   2795 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2796 extern void __attribute__((overloadable))
   2797     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x);
   2798 #endif
   2799 
   2800 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2801 extern void __attribute__((overloadable))
   2802     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x);
   2803 #endif
   2804 
   2805 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2806 extern void __attribute__((overloadable))
   2807     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x);
   2808 #endif
   2809 
   2810 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2811 extern void __attribute__((overloadable))
   2812     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x);
   2813 #endif
   2814 
   2815 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2816 extern void __attribute__((overloadable))
   2817     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x);
   2818 #endif
   2819 
   2820 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2821 extern void __attribute__((overloadable))
   2822     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x);
   2823 #endif
   2824 
   2825 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2826 extern void __attribute__((overloadable))
   2827     rsSetElementAt_int(rs_allocation a, int val, uint32_t x);
   2828 #endif
   2829 
   2830 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2831 extern void __attribute__((overloadable))
   2832     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x);
   2833 #endif
   2834 
   2835 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2836 extern void __attribute__((overloadable))
   2837     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x);
   2838 #endif
   2839 
   2840 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2841 extern void __attribute__((overloadable))
   2842     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x);
   2843 #endif
   2844 
   2845 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2846 extern void __attribute__((overloadable))
   2847     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x);
   2848 #endif
   2849 
   2850 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2851 extern void __attribute__((overloadable))
   2852     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x);
   2853 #endif
   2854 
   2855 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2856 extern void __attribute__((overloadable))
   2857     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x);
   2858 #endif
   2859 
   2860 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2861 extern void __attribute__((overloadable))
   2862     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x);
   2863 #endif
   2864 
   2865 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2866 extern void __attribute__((overloadable))
   2867     rsSetElementAt_long(rs_allocation a, long val, uint32_t x);
   2868 #endif
   2869 
   2870 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2871 extern void __attribute__((overloadable))
   2872     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x);
   2873 #endif
   2874 
   2875 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2876 extern void __attribute__((overloadable))
   2877     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x);
   2878 #endif
   2879 
   2880 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2881 extern void __attribute__((overloadable))
   2882     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x);
   2883 #endif
   2884 
   2885 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2886 extern void __attribute__((overloadable))
   2887     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x);
   2888 #endif
   2889 
   2890 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2891 extern void __attribute__((overloadable))
   2892     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x);
   2893 #endif
   2894 
   2895 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2896 extern void __attribute__((overloadable))
   2897     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x);
   2898 #endif
   2899 
   2900 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2901 extern void __attribute__((overloadable))
   2902     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x);
   2903 #endif
   2904 
   2905 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2906 extern void __attribute__((overloadable))
   2907     rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y);
   2908 #endif
   2909 
   2910 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2911 extern void __attribute__((overloadable))
   2912     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
   2913 #endif
   2914 
   2915 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2916 extern void __attribute__((overloadable))
   2917     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
   2918 #endif
   2919 
   2920 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2921 extern void __attribute__((overloadable))
   2922     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
   2923 #endif
   2924 
   2925 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2926 extern void __attribute__((overloadable))
   2927     rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y);
   2928 #endif
   2929 
   2930 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2931 extern void __attribute__((overloadable))
   2932     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
   2933 #endif
   2934 
   2935 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2936 extern void __attribute__((overloadable))
   2937     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
   2938 #endif
   2939 
   2940 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2941 extern void __attribute__((overloadable))
   2942     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
   2943 #endif
   2944 
   2945 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2946 extern void __attribute__((overloadable))
   2947     rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y);
   2948 #endif
   2949 
   2950 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2951 extern void __attribute__((overloadable))
   2952     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
   2953 #endif
   2954 
   2955 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2956 extern void __attribute__((overloadable))
   2957     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
   2958 #endif
   2959 
   2960 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2961 extern void __attribute__((overloadable))
   2962     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
   2963 #endif
   2964 
   2965 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2966 extern void __attribute__((overloadable))
   2967     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y);
   2968 #endif
   2969 
   2970 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2971 extern void __attribute__((overloadable))
   2972     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
   2973 #endif
   2974 
   2975 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2976 extern void __attribute__((overloadable))
   2977     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
   2978 #endif
   2979 
   2980 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2981 extern void __attribute__((overloadable))
   2982     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
   2983 #endif
   2984 
   2985 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2986 extern void __attribute__((overloadable))
   2987     rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y);
   2988 #endif
   2989 
   2990 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2991 extern void __attribute__((overloadable))
   2992     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
   2993 #endif
   2994 
   2995 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   2996 extern void __attribute__((overloadable))
   2997     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
   2998 #endif
   2999 
   3000 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3001 extern void __attribute__((overloadable))
   3002     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
   3003 #endif
   3004 
   3005 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3006 extern void __attribute__((overloadable))
   3007     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y);
   3008 #endif
   3009 
   3010 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3011 extern void __attribute__((overloadable))
   3012     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
   3013 #endif
   3014 
   3015 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3016 extern void __attribute__((overloadable))
   3017     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
   3018 #endif
   3019 
   3020 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3021 extern void __attribute__((overloadable))
   3022     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
   3023 #endif
   3024 
   3025 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3026 extern void __attribute__((overloadable))
   3027     rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y);
   3028 #endif
   3029 
   3030 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3031 extern void __attribute__((overloadable))
   3032     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
   3033 #endif
   3034 
   3035 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3036 extern void __attribute__((overloadable))
   3037     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
   3038 #endif
   3039 
   3040 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3041 extern void __attribute__((overloadable))
   3042     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
   3043 #endif
   3044 
   3045 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3046 extern void __attribute__((overloadable))
   3047     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y);
   3048 #endif
   3049 
   3050 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3051 extern void __attribute__((overloadable))
   3052     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
   3053 #endif
   3054 
   3055 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3056 extern void __attribute__((overloadable))
   3057     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
   3058 #endif
   3059 
   3060 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3061 extern void __attribute__((overloadable))
   3062     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
   3063 #endif
   3064 
   3065 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3066 extern void __attribute__((overloadable))
   3067     rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y);
   3068 #endif
   3069 
   3070 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3071 extern void __attribute__((overloadable))
   3072     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
   3073 #endif
   3074 
   3075 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3076 extern void __attribute__((overloadable))
   3077     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
   3078 #endif
   3079 
   3080 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3081 extern void __attribute__((overloadable))
   3082     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
   3083 #endif
   3084 
   3085 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3086 extern void __attribute__((overloadable))
   3087     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y);
   3088 #endif
   3089 
   3090 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3091 extern void __attribute__((overloadable))
   3092     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
   3093 #endif
   3094 
   3095 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3096 extern void __attribute__((overloadable))
   3097     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
   3098 #endif
   3099 
   3100 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3101 extern void __attribute__((overloadable))
   3102     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
   3103 #endif
   3104 
   3105 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3106 extern void __attribute__((overloadable))
   3107     rsSetElementAt_float(rs_allocation a, float val, uint32_t x, uint32_t y, uint32_t z);
   3108 #endif
   3109 
   3110 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3111 extern void __attribute__((overloadable))
   3112     rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
   3113 #endif
   3114 
   3115 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3116 extern void __attribute__((overloadable))
   3117     rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
   3118 #endif
   3119 
   3120 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3121 extern void __attribute__((overloadable))
   3122     rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
   3123 #endif
   3124 
   3125 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3126 extern void __attribute__((overloadable))
   3127     rsSetElementAt_double(rs_allocation a, double val, uint32_t x, uint32_t y, uint32_t z);
   3128 #endif
   3129 
   3130 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3131 extern void __attribute__((overloadable))
   3132     rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
   3133 #endif
   3134 
   3135 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3136 extern void __attribute__((overloadable))
   3137     rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
   3138 #endif
   3139 
   3140 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3141 extern void __attribute__((overloadable))
   3142     rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
   3143 #endif
   3144 
   3145 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3146 extern void __attribute__((overloadable))
   3147     rsSetElementAt_char(rs_allocation a, char val, uint32_t x, uint32_t y, uint32_t z);
   3148 #endif
   3149 
   3150 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3151 extern void __attribute__((overloadable))
   3152     rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
   3153 #endif
   3154 
   3155 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3156 extern void __attribute__((overloadable))
   3157     rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
   3158 #endif
   3159 
   3160 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3161 extern void __attribute__((overloadable))
   3162     rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
   3163 #endif
   3164 
   3165 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3166 extern void __attribute__((overloadable))
   3167     rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x, uint32_t y, uint32_t z);
   3168 #endif
   3169 
   3170 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3171 extern void __attribute__((overloadable))
   3172     rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
   3173 #endif
   3174 
   3175 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3176 extern void __attribute__((overloadable))
   3177     rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
   3178 #endif
   3179 
   3180 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3181 extern void __attribute__((overloadable))
   3182     rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
   3183 #endif
   3184 
   3185 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3186 extern void __attribute__((overloadable))
   3187     rsSetElementAt_short(rs_allocation a, short val, uint32_t x, uint32_t y, uint32_t z);
   3188 #endif
   3189 
   3190 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3191 extern void __attribute__((overloadable))
   3192     rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
   3193 #endif
   3194 
   3195 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3196 extern void __attribute__((overloadable))
   3197     rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
   3198 #endif
   3199 
   3200 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3201 extern void __attribute__((overloadable))
   3202     rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
   3203 #endif
   3204 
   3205 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3206 extern void __attribute__((overloadable))
   3207     rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x, uint32_t y, uint32_t z);
   3208 #endif
   3209 
   3210 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3211 extern void __attribute__((overloadable))
   3212     rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
   3213 #endif
   3214 
   3215 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3216 extern void __attribute__((overloadable))
   3217     rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
   3218 #endif
   3219 
   3220 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3221 extern void __attribute__((overloadable))
   3222     rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
   3223 #endif
   3224 
   3225 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3226 extern void __attribute__((overloadable))
   3227     rsSetElementAt_int(rs_allocation a, int val, uint32_t x, uint32_t y, uint32_t z);
   3228 #endif
   3229 
   3230 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3231 extern void __attribute__((overloadable))
   3232     rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
   3233 #endif
   3234 
   3235 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3236 extern void __attribute__((overloadable))
   3237     rsSetElementAt_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
   3238 #endif
   3239 
   3240 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3241 extern void __attribute__((overloadable))
   3242     rsSetElementAt_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
   3243 #endif
   3244 
   3245 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3246 extern void __attribute__((overloadable))
   3247     rsSetElementAt_uint(rs_allocation a, uint val, uint32_t x, uint32_t y, uint32_t z);
   3248 #endif
   3249 
   3250 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3251 extern void __attribute__((overloadable))
   3252     rsSetElementAt_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
   3253 #endif
   3254 
   3255 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3256 extern void __attribute__((overloadable))
   3257     rsSetElementAt_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
   3258 #endif
   3259 
   3260 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3261 extern void __attribute__((overloadable))
   3262     rsSetElementAt_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
   3263 #endif
   3264 
   3265 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3266 extern void __attribute__((overloadable))
   3267     rsSetElementAt_long(rs_allocation a, long val, uint32_t x, uint32_t y, uint32_t z);
   3268 #endif
   3269 
   3270 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3271 extern void __attribute__((overloadable))
   3272     rsSetElementAt_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
   3273 #endif
   3274 
   3275 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3276 extern void __attribute__((overloadable))
   3277     rsSetElementAt_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
   3278 #endif
   3279 
   3280 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3281 extern void __attribute__((overloadable))
   3282     rsSetElementAt_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
   3283 #endif
   3284 
   3285 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3286 extern void __attribute__((overloadable))
   3287     rsSetElementAt_ulong(rs_allocation a, ulong val, uint32_t x, uint32_t y, uint32_t z);
   3288 #endif
   3289 
   3290 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3291 extern void __attribute__((overloadable))
   3292     rsSetElementAt_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
   3293 #endif
   3294 
   3295 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3296 extern void __attribute__((overloadable))
   3297     rsSetElementAt_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
   3298 #endif
   3299 
   3300 #if (defined(RS_VERSION) && (RS_VERSION >= 18))
   3301 extern void __attribute__((overloadable))
   3302     rsSetElementAt_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
   3303 #endif
   3304 
   3305 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3306 extern void __attribute__((overloadable))
   3307     rsSetElementAt_half(rs_allocation a, half val, uint32_t x);
   3308 #endif
   3309 
   3310 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3311 extern void __attribute__((overloadable))
   3312     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x);
   3313 #endif
   3314 
   3315 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3316 extern void __attribute__((overloadable))
   3317     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x);
   3318 #endif
   3319 
   3320 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3321 extern void __attribute__((overloadable))
   3322     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x);
   3323 #endif
   3324 
   3325 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3326 extern void __attribute__((overloadable))
   3327     rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y);
   3328 #endif
   3329 
   3330 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3331 extern void __attribute__((overloadable))
   3332     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y);
   3333 #endif
   3334 
   3335 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3336 extern void __attribute__((overloadable))
   3337     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y);
   3338 #endif
   3339 
   3340 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3341 extern void __attribute__((overloadable))
   3342     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y);
   3343 #endif
   3344 
   3345 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3346 extern void __attribute__((overloadable))
   3347     rsSetElementAt_half(rs_allocation a, half val, uint32_t x, uint32_t y, uint32_t z);
   3348 #endif
   3349 
   3350 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3351 extern void __attribute__((overloadable))
   3352     rsSetElementAt_half2(rs_allocation a, half2 val, uint32_t x, uint32_t y, uint32_t z);
   3353 #endif
   3354 
   3355 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3356 extern void __attribute__((overloadable))
   3357     rsSetElementAt_half3(rs_allocation a, half3 val, uint32_t x, uint32_t y, uint32_t z);
   3358 #endif
   3359 
   3360 #if (defined(RS_VERSION) && (RS_VERSION >= 23))
   3361 extern void __attribute__((overloadable))
   3362     rsSetElementAt_half4(rs_allocation a, half4 val, uint32_t x, uint32_t y, uint32_t z);
   3363 #endif
   3364 
   3365 #endif // RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
   3366