summaryrefslogtreecommitdiff
path: root/scriptc
diff options
context:
space:
mode:
authorJason Sams <jsams@google.com>2012-09-24 17:00:05 -0700
committerJason Sams <jsams@google.com>2012-09-24 17:01:29 -0700
commit9c7d4c4234ecec19531792d65149298482a4b735 (patch)
tree0f3b68036d608b2faede027020bcf39549b60cda /scriptc
parentcf9ea9f4145cae663f439b1c2dab956fa37180bb (diff)
downloadrs-9c7d4c4234ecec19531792d65149298482a4b735.tar.gz
Implement FS compatible getElementAt_*
bug 7190126 Change-Id: Idc04c033f9b92ed3bace7dc273a8f482b0eef0aa
Diffstat (limited to 'scriptc')
-rw-r--r--scriptc/rs_allocation.rsh58
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))