diff options
author | Jason Sams <jsams@google.com> | 2012-09-24 17:00:05 -0700 |
---|---|---|
committer | Jason Sams <jsams@google.com> | 2012-09-24 17:01:29 -0700 |
commit | 9c7d4c4234ecec19531792d65149298482a4b735 (patch) | |
tree | 0f3b68036d608b2faede027020bcf39549b60cda /scriptc | |
parent | cf9ea9f4145cae663f439b1c2dab956fa37180bb (diff) | |
download | rs-9c7d4c4234ecec19531792d65149298482a4b735.tar.gz |
Implement FS compatible getElementAt_*
bug 7190126
Change-Id: Idc04c033f9b92ed3bace7dc273a8f482b0eef0aa
Diffstat (limited to 'scriptc')
-rw-r--r-- | scriptc/rs_allocation.rsh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/scriptc/rs_allocation.rsh b/scriptc/rs_allocation.rsh index a5340885..42d27bc8 100644 --- a/scriptc/rs_allocation.rsh +++ b/scriptc/rs_allocation.rsh @@ -146,6 +146,64 @@ extern const void * __attribute__((overloadable)) extern const void * __attribute__((overloadable)) rsGetElementAt(rs_allocation, uint32_t x, uint32_t y, uint32_t z); + +#define GET_ELEMENT_AT(T) \ +static inline T __attribute__((overloadable)) \ + rsGetElementAt_##T(rs_allocation a, uint32_t x) { \ + return ((T *)rsGetElementAt(a, x))[0]; \ +} \ +static inline T __attribute__((overloadable)) \ + rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y) { \ + return ((T *)rsGetElementAt(a, x, y))[0]; \ +} \ +static inline T __attribute__((overloadable)) \ + rsGetElementAt_##T(rs_allocation a, uint32_t x, uint32_t y, uint32_t z) { \ + return ((T *)rsGetElementAt(a, x, y, z))[0]; \ +} + +GET_ELEMENT_AT(char) +GET_ELEMENT_AT(char2) +GET_ELEMENT_AT(char3) +GET_ELEMENT_AT(char4) +GET_ELEMENT_AT(uchar) +GET_ELEMENT_AT(uchar2) +GET_ELEMENT_AT(uchar3) +GET_ELEMENT_AT(uchar4) +GET_ELEMENT_AT(short) +GET_ELEMENT_AT(short2) +GET_ELEMENT_AT(short3) +GET_ELEMENT_AT(short4) +GET_ELEMENT_AT(ushort) +GET_ELEMENT_AT(ushort2) +GET_ELEMENT_AT(ushort3) +GET_ELEMENT_AT(ushort4) +GET_ELEMENT_AT(int) +GET_ELEMENT_AT(int2) +GET_ELEMENT_AT(int3) +GET_ELEMENT_AT(int4) +GET_ELEMENT_AT(uint) +GET_ELEMENT_AT(uint2) +GET_ELEMENT_AT(uint3) +GET_ELEMENT_AT(uint4) +GET_ELEMENT_AT(long) +GET_ELEMENT_AT(long2) +GET_ELEMENT_AT(long3) +GET_ELEMENT_AT(long4) +GET_ELEMENT_AT(ulong) +GET_ELEMENT_AT(ulong2) +GET_ELEMENT_AT(ulong3) +GET_ELEMENT_AT(ulong4) +GET_ELEMENT_AT(float) +GET_ELEMENT_AT(float2) +GET_ELEMENT_AT(float3) +GET_ELEMENT_AT(float4) +GET_ELEMENT_AT(double) +GET_ELEMENT_AT(double2) +GET_ELEMENT_AT(double3) +GET_ELEMENT_AT(double4) + +#undef GET_ELEMENT_AT + // New API's #if (defined(RS_VERSION) && (RS_VERSION >= 16)) |