blob: 69e9baf823fc788d86c0d19d48712396d9738486 [file] [log] [blame]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Don't edit this file! It is auto-generated by frameworks/rs/api/generate.sh.
/*
* rs_allocation_data.rsh: Allocation Data Access Functions
*
* The functions below can be used to get and set the cells that comprise
* an allocation.
*
* - Individual cells are accessed using the rsGetElementAt* and
* rsSetElementAt functions.
* - Multiple cells can be copied using the rsAllocationCopy* and
* rsAllocationV* functions.
* - For getting values through a sampler, use rsSample.
*
* The rsGetElementAt and rsSetElement* functions are somewhat misnamed.
* They don't get or set elements, which are akin to data types; they get
* or set cells. Think of them as rsGetCellAt and and rsSetCellAt.
*/
#ifndef RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
#define RENDERSCRIPT_RS_ALLOCATION_DATA_RSH
/*
* rsAllocationCopy1DRange: Copy consecutive cells between allocations
*
* Copies the specified number of cells from one allocation to another.
*
* The two allocations must be different. Using this function to copy whithin
* the same allocation yields undefined results.
*
* The function does not validate whether the offset plus count exceeds the size
* of either allocation. Be careful!
*
* This function should only be called between 1D allocations. Calling it
* on other allocations is undefined.
*
* Parameters:
* dstAlloc: Allocation to copy cells into.
* dstOff: Offset in the destination of the first cell to be copied into.
* dstMip: Mip level in the destination allocation. 0 if mip mapping is not used.
* count: Number of cells to be copied.
* srcAlloc: Source allocation.
* srcOff: Offset in the source of the first cell to be copied.
* srcMip: Mip level in the source allocation. 0 if mip mapping is not used.
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 14))
extern void __attribute__((overloadable))
rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t count,
rs_allocation srcAlloc, uint32_t srcOff, uint32_t srcMip);
#endif
/*
* rsAllocationCopy2DRange: Copy a rectangular region of cells between allocations
*
* Copies a rectangular region of cells from one allocation to another.
* (width * heigth) cells are copied.
*
* The two allocations must be different. Using this function to copy whithin
* the same allocation yields undefined results.
*
* The function does not validate whether the the source or destination region
* exceeds the size of its respective allocation. Be careful!
*
* This function should only be called between 2D allocations. Calling it
* on other allocations is undefined.
*
* Parameters:
* dstAlloc: Allocation to copy cells into.
* dstXoff: X offset in the destination of the region to be set.
* dstYoff: Y offset in the destination of the region to be set.
* dstMip: Mip level in the destination allocation. 0 if mip mapping is not used.
* dstFace: Cubemap face of the destination allocation. Ignored for allocations that aren't cubemaps.
* width: Width of the incoming region to update.
* height: Height of the incoming region to update.
* srcAlloc: Source allocation.
* srcXoff: X offset in the source.
* srcYoff: Y offset in the source.
* srcMip: Mip level in the source allocation. 0 if mip mapping is not used.
* srcFace: Cubemap face of the source allocation. Ignored for allocations that aren't cubemaps.
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 14))
extern void __attribute__((overloadable))
rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff,
uint32_t dstMip, rs_allocation_cubemap_face dstFace, uint32_t width,
uint32_t height, rs_allocation srcAlloc, uint32_t srcXoff,
uint32_t srcYoff, uint32_t srcMip, rs_allocation_cubemap_face srcFace);
#endif
/*
* rsAllocationVLoadX: Get a vector from an allocation of scalars
*
* This function returns a vector composed of successive cells of the allocation.
* It assumes that the allocation contains scalars.
*
* The "X" in the name indicates that successive values are extracted by
* increasing the X index. There are currently no functions to get successive
* values incrementing other dimensions. Use multiple calls to rsGetElementAt()
* instead.
*
* For example, when calling rsAllocationVLoadX_int4(a, 20, 30), an int4 composed
* of a[20, 30], a[21, 30], a[22, 30], and a[23, 30] is returned.
*
* When retrieving from a three dimensional allocations, use the x, y, z variant.
* Similarly, use the x, y variant for two dimensional allocations and x for the
* mono dimensional allocations.
*
* For efficiency, this function does not validate the inputs. Trying to wrap
* the X index, exceeding the size of the allocation, or using indices incompatible
* with the dimensionality of the allocation yields undefined results.
*
* See also rsAllocationVStoreX().
*
* Parameters:
* a: Allocation to get the data from.
* x: X offset in the allocation of the first cell to be copied from.
* y: Y offset in the allocation of the first cell to be copied from.
* z: Z offset in the allocation of the first cell to be copied from.
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float2 __attribute__((overloadable))
rsAllocationVLoadX_float2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float3 __attribute__((overloadable))
rsAllocationVLoadX_float3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float4 __attribute__((overloadable))
rsAllocationVLoadX_float4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double2 __attribute__((overloadable))
rsAllocationVLoadX_double2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double3 __attribute__((overloadable))
rsAllocationVLoadX_double3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double4 __attribute__((overloadable))
rsAllocationVLoadX_double4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char2 __attribute__((overloadable))
rsAllocationVLoadX_char2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char3 __attribute__((overloadable))
rsAllocationVLoadX_char3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char4 __attribute__((overloadable))
rsAllocationVLoadX_char4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar2 __attribute__((overloadable))
rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar3 __attribute__((overloadable))
rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar4 __attribute__((overloadable))
rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short2 __attribute__((overloadable))
rsAllocationVLoadX_short2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short3 __attribute__((overloadable))
rsAllocationVLoadX_short3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short4 __attribute__((overloadable))
rsAllocationVLoadX_short4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort2 __attribute__((overloadable))
rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort3 __attribute__((overloadable))
rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort4 __attribute__((overloadable))
rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int2 __attribute__((overloadable))
rsAllocationVLoadX_int2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int3 __attribute__((overloadable))
rsAllocationVLoadX_int3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int4 __attribute__((overloadable))
rsAllocationVLoadX_int4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint2 __attribute__((overloadable))
rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint3 __attribute__((overloadable))
rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint4 __attribute__((overloadable))
rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long2 __attribute__((overloadable))
rsAllocationVLoadX_long2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long3 __attribute__((overloadable))
rsAllocationVLoadX_long3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long4 __attribute__((overloadable))
rsAllocationVLoadX_long4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong2 __attribute__((overloadable))
rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong3 __attribute__((overloadable))
rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong4 __attribute__((overloadable))
rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float2 __attribute__((overloadable))
rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float3 __attribute__((overloadable))
rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float4 __attribute__((overloadable))
rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double2 __attribute__((overloadable))
rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double3 __attribute__((overloadable))
rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double4 __attribute__((overloadable))
rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char2 __attribute__((overloadable))
rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char3 __attribute__((overloadable))
rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char4 __attribute__((overloadable))
rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar2 __attribute__((overloadable))
rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar3 __attribute__((overloadable))
rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar4 __attribute__((overloadable))
rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short2 __attribute__((overloadable))
rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short3 __attribute__((overloadable))
rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short4 __attribute__((overloadable))
rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort2 __attribute__((overloadable))
rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort3 __attribute__((overloadable))
rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort4 __attribute__((overloadable))
rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int2 __attribute__((overloadable))
rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int3 __attribute__((overloadable))
rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int4 __attribute__((overloadable))
rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint2 __attribute__((overloadable))
rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint3 __attribute__((overloadable))
rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint4 __attribute__((overloadable))
rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long2 __attribute__((overloadable))
rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long3 __attribute__((overloadable))
rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long4 __attribute__((overloadable))
rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong2 __attribute__((overloadable))
rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong3 __attribute__((overloadable))
rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong4 __attribute__((overloadable))
rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float2 __attribute__((overloadable))
rsAllocationVLoadX_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float3 __attribute__((overloadable))
rsAllocationVLoadX_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern float4 __attribute__((overloadable))
rsAllocationVLoadX_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double2 __attribute__((overloadable))
rsAllocationVLoadX_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double3 __attribute__((overloadable))
rsAllocationVLoadX_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern double4 __attribute__((overloadable))
rsAllocationVLoadX_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char2 __attribute__((overloadable))
rsAllocationVLoadX_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char3 __attribute__((overloadable))
rsAllocationVLoadX_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern char4 __attribute__((overloadable))
rsAllocationVLoadX_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar2 __attribute__((overloadable))
rsAllocationVLoadX_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar3 __attribute__((overloadable))
rsAllocationVLoadX_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uchar4 __attribute__((overloadable))
rsAllocationVLoadX_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short2 __attribute__((overloadable))
rsAllocationVLoadX_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short3 __attribute__((overloadable))
rsAllocationVLoadX_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern short4 __attribute__((overloadable))
rsAllocationVLoadX_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort2 __attribute__((overloadable))
rsAllocationVLoadX_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort3 __attribute__((overloadable))
rsAllocationVLoadX_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ushort4 __attribute__((overloadable))
rsAllocationVLoadX_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int2 __attribute__((overloadable))
rsAllocationVLoadX_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int3 __attribute__((overloadable))
rsAllocationVLoadX_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern int4 __attribute__((overloadable))
rsAllocationVLoadX_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint2 __attribute__((overloadable))
rsAllocationVLoadX_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint3 __attribute__((overloadable))
rsAllocationVLoadX_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern uint4 __attribute__((overloadable))
rsAllocationVLoadX_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long2 __attribute__((overloadable))
rsAllocationVLoadX_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long3 __attribute__((overloadable))
rsAllocationVLoadX_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern long4 __attribute__((overloadable))
rsAllocationVLoadX_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong2 __attribute__((overloadable))
rsAllocationVLoadX_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong3 __attribute__((overloadable))
rsAllocationVLoadX_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern ulong4 __attribute__((overloadable))
rsAllocationVLoadX_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
/*
* rsAllocationVStoreX: Store a vector into an allocation of scalars
*
* This function stores the entries of a vector into successive cells of an allocation.
* It assumes that the allocation contains scalars.
*
* The "X" in the name indicates that successive values are stored by increasing
* the X index. There are currently no functions to store successive values
* incrementing other dimensions. Use multiple calls to rsSetElementAt() instead.
*
* For example, when calling rsAllocationVStoreX_int3(a, v, 20, 30), v.x is stored
* at a[20, 30], v.y at a[21, 30], and v.z at a[22, 30].
*
* When storing into a three dimensional allocations, use the x, y, z variant.
* Similarly, use the x, y variant for two dimensional allocations and x for the
* mono dimensional allocations.
*
* For efficiency, this function does not validate the inputs. Trying to wrap the
* X index, exceeding the size of the allocation, or using indexes incompatible
* with the dimensionality of the allocation yiels undefined results.
*
* See also rsAllocationVLoadX().
*
* Parameters:
* a: Allocation to store the data into.
* val: Value to be stored.
* x: X offset in the allocation of the first cell to be copied into.
* y: Y offset in the allocation of the first cell to be copied into.
* z: Z offset in the allocation of the first cell to be copied into.
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 22))
extern void __attribute__((overloadable))
rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z);
#endif
/*
* rsGetElementAt: Return a cell from an allocation
*
* This function extracts a single cell from an allocation.
*
* When retrieving from a three dimensional allocations, use the x, y, z variant.
* Similarly, use the x, y variant for two dimensional allocations and x for the
* mono dimensional allocations.
*
* This function has two styles. One returns the address of the value using a void*,
* the other returns the actual value, e.g. rsGetElementAt() vs. rsGetElementAt_int4().
* For primitive types, always use the latter as it is more efficient.
*/
extern const void* __attribute__((overloadable))
rsGetElementAt(rs_allocation a, uint32_t x);
extern const void* __attribute__((overloadable))
rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y);
extern const void* __attribute__((overloadable))
rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x) {
return ((float *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x) {
return ((float2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x) {
return ((float3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x) {
return ((float4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x) {
return ((double *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x) {
return ((double2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x) {
return ((double3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x) {
return ((double4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x) {
return ((char *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x) {
return ((char2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x) {
return ((char3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x) {
return ((char4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x) {
return ((uchar *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x) {
return ((uchar2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x) {
return ((uchar3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x) {
return ((uchar4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x) {
return ((short *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x) {
return ((short2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x) {
return ((short3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x) {
return ((short4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x) {
return ((ushort *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x) {
return ((ushort2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x) {
return ((ushort3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x) {
return ((ushort4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x) {
return ((int *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x) {
return ((int2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x) {
return ((int3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x) {
return ((int4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x) {
return ((uint *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x) {
return ((uint2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x) {
return ((uint3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x) {
return ((uint4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x) {
return ((long *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x) {
return ((long2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x) {
return ((long3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x) {
return ((long4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x) {
return ((ulong *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x) {
return ((ulong2 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x) {
return ((ulong3 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x) {
return ((ulong4 *)rsGetElementAt(a, x))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y) {
return ((float *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y) {
return ((float2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y) {
return ((float3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y) {
return ((float4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y) {
return ((double *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y) {
return ((double2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y) {
return ((double3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y) {
return ((double4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y) {
return ((char *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y) {
return ((char2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y) {
return ((char3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y) {
return ((char4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y) {
return ((uchar *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y) {
return ((uchar2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y) {
return ((uchar3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y) {
return ((uchar4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y) {
return ((short *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y) {
return ((short2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y) {
return ((short3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y) {
return ((short4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y) {
return ((ushort *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y) {
return ((ushort2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y) {
return ((ushort3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y) {
return ((ushort4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y) {
return ((int *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y) {
return ((int2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y) {
return ((int3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y) {
return ((int4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y) {
return ((uint *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y) {
return ((uint2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y) {
return ((uint3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y) {
return ((uint4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y) {
return ((long *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y) {
return ((long2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y) {
return ((long3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y) {
return ((long4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y) {
return ((ulong *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y) {
return ((ulong2 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y) {
return ((ulong3 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y) {
return ((ulong4 *)rsGetElementAt(a, x, y))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((float *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((float2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((float3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((float4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((double *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((double2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((double3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((double4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((char *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((char2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((char3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((char4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uchar *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uchar2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uchar3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uchar4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((short *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((short2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((short3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((short4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ushort *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ushort2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ushort3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ushort4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((int *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((int2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((int3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((int4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uint *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uint2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uint3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((uint4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((long *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((long2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((long3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((long4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ulong *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ulong2 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ulong3 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if !defined(RS_VERSION) || (RS_VERSION <= 17)
static inline ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) {
return ((ulong4 *)rsGetElementAt(a, x, y, z))[0];
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float __attribute__((overloadable))
rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float2 __attribute__((overloadable))
rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float3 __attribute__((overloadable))
rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern float4 __attribute__((overloadable))
rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double __attribute__((overloadable))
rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double2 __attribute__((overloadable))
rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double3 __attribute__((overloadable))
rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern double4 __attribute__((overloadable))
rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char __attribute__((overloadable))
rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char2 __attribute__((overloadable))
rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char3 __attribute__((overloadable))
rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern char4 __attribute__((overloadable))
rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar2 __attribute__((overloadable))
rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar3 __attribute__((overloadable))
rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar4 __attribute__((overloadable))
rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short __attribute__((overloadable))
rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short2 __attribute__((overloadable))
rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short3 __attribute__((overloadable))
rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern short4 __attribute__((overloadable))
rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort __attribute__((overloadable))
rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort2 __attribute__((overloadable))
rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort3 __attribute__((overloadable))
rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ushort4 __attribute__((overloadable))
rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int __attribute__((overloadable))
rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int2 __attribute__((overloadable))
rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int3 __attribute__((overloadable))
rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern int4 __attribute__((overloadable))
rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint __attribute__((overloadable))
rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint2 __attribute__((overloadable))
rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint3 __attribute__((overloadable))
rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uint4 __attribute__((overloadable))
rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long __attribute__((overloadable))
rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long2 __attribute__((overloadable))
rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long3 __attribute__((overloadable))
rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern long4 __attribute__((overloadable))
rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong __attribute__((overloadable))
rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong2 __attribute__((overloadable))
rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong3 __attribute__((overloadable))
rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern ulong4 __attribute__((overloadable))
rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half __attribute__((overloadable))
rsGetElementAt_half(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half2 __attribute__((overloadable))
rsGetElementAt_half2(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half3 __attribute__((overloadable))
rsGetElementAt_half3(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half4 __attribute__((overloadable))
rsGetElementAt_half4(rs_allocation a, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half __attribute__((overloadable))
rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half2 __attribute__((overloadable))
rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half3 __attribute__((overloadable))
rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half4 __attribute__((overloadable))
rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half __attribute__((overloadable))
rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half2 __attribute__((overloadable))
rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half3 __attribute__((overloadable))
rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 23))
extern half4 __attribute__((overloadable))
rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z);
#endif
/*
* rsGetElementAtYuv_uchar_U: Get the U component of an allocation of YUVs
*
* Extracts the U component of a single YUV value from a 2D allocation of YUVs.
*
* Inside an allocation, Y, U, and V components may be stored if different planes
* and at different resolutions. The x, y coordinates provided here are in the
* dimensions of the Y plane.
*
* See rsGetElementAtYuv_uchar_Y().
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAtYuv_uchar_U(rs_allocation a, uint32_t x, uint32_t y);
#endif
/*
* rsGetElementAtYuv_uchar_V: Get the V component of an allocation of YUVs
*
* Extracts the V component of a single YUV value from a 2D allocation of YUVs.
*
* Inside an allocation, Y, U, and V components may be stored if different planes
* and at different resolutions. The x, y coordinates provided here are in the
* dimensions of the Y plane.
*
* See rsGetElementAtYuv_uchar_Y().
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAtYuv_uchar_V(rs_allocation a, uint32_t x, uint32_t y);
#endif
/*
* rsGetElementAtYuv_uchar_Y: Get the Y component of an allocation of YUVs
*
* Extracts the Y component of a single YUV value from a 2D allocation of YUVs.
*
* Inside an allocation, Y, U, and V components may be stored if different planes
* and at different resolutions. The x, y coordinates provided here are in the
* dimensions of the Y plane.
*
* See rsGetElementAtYuv_uchar_U() and rsGetElementAtYuv_uchar_V().
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern uchar __attribute__((overloadable))
rsGetElementAtYuv_uchar_Y(rs_allocation a, uint32_t x, uint32_t y);
#endif
/*
* rsSample: Sample a value from a texture allocation
*
* Fetches a value from a texture allocation in a way described by the sampler.
*
* If your allocation is 1D, use the variant with float for location. For 2D,
* use the float2 variant.
*
* See android.renderscript.Sampler for more details.
*
* Parameters:
* a: Allocation to sample from.
* s: Sampler state.
* location: Location to sample from.
* lod: Mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used.
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 16))
extern float4 __attribute__((overloadable))
rsSample(rs_allocation a, rs_sampler s, float location);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 16))
extern float4 __attribute__((overloadable))
rsSample(rs_allocation a, rs_sampler s, float location, float lod);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 16))
extern float4 __attribute__((overloadable))
rsSample(rs_allocation a, rs_sampler s, float2 location);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 16))
extern float4 __attribute__((overloadable))
rsSample(rs_allocation a, rs_sampler s, float2 location, float lod);
#endif
/*
* rsSetElementAt: Set a cell of an allocation
*
* This function stores a value into a single cell of an allocation.
*
* When storing into a three dimensional allocations, use the x, y, z variant.
* Similarly, use the x, y variant for two dimensional allocations and x for
* the mono dimensional allocations.
*
* This function has two styles. One passes the value to be stored using a void*,
* the other has the actual value as an argument, e.g. rsSetElementAt() vs.
* rsSetElementAt_int4(). For primitive types, always use the latter as it is
* more efficient.
*
* See also rsGetElementAt().
*/
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt(rs_allocation a, void* ptr, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt(rs_allocation a, void* ptr, uint32_t x, uint32_t y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_float(rs_allocation a, float val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_float2(rs_allocation a, float2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_float3(rs_allocation a, float3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_float4(rs_allocation a, float4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_double(rs_allocation a, double val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_double2(rs_allocation a, double2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_double3(rs_allocation a, double3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_double4(rs_allocation a, double4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_char(rs_allocation a, char val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_char2(rs_allocation a, char2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_char3(rs_allocation a, char3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_char4(rs_allocation a, char4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_uchar(rs_allocation a, uchar val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_uchar2(rs_allocation a, uchar2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_uchar3(rs_allocation a, uchar3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_uchar4(rs_allocation a, uchar4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_short(rs_allocation a, short val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_short2(rs_allocation a, short2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_short3(rs_allocation a, short3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_short4(rs_allocation a, short4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_ushort(rs_allocation a, ushort val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_ushort2(rs_allocation a, ushort2 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_ushort3(rs_allocation a, ushort3 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_ushort4(rs_allocation a, ushort4 val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_int(rs_allocation a, int val, uint32_t x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
extern void __attribute__((overloadable))
rsSetElementAt_int2(rs_allocation a, int2 val, uint32_t x);