| // This file is automatically generated from |
| // frameworks/rs/tests/java_api/RSUnitTests/RSUnitTests.py |
| /* |
| * Copyright (C) 2017 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. |
| */ |
| |
| #include "shared.rsh" |
| |
| uint32_t x; |
| uint32_t y; |
| uint32_t z; |
| |
| rs_element elemNull; |
| rs_element elemNonNull; |
| rs_type typeNull; |
| rs_type typeNonNull; |
| rs_allocation allocNull; |
| rs_allocation allocNonNull; |
| rs_sampler samplerNull; |
| rs_sampler samplerNonNull; |
| rs_script scriptNull; |
| rs_script scriptNonNull; |
| |
| volatile rs_data_type dt; |
| volatile rs_data_kind dk; |
| |
| volatile rs_sampler_value rsv; |
| |
| volatile static rs_time_t rst; |
| volatile static rs_tm rstm; |
| |
| char *allocPtr; |
| rs_allocation allocDst; |
| |
| volatile bool b; |
| volatile char c; |
| volatile char2 c2; |
| volatile char3 c3; |
| volatile char4 c4; |
| volatile uchar uc; |
| volatile uchar2 uc2; |
| volatile uchar3 uc3; |
| volatile uchar4 uc4; |
| volatile short s; |
| volatile short2 s2; |
| volatile short3 s3; |
| volatile short4 s4; |
| volatile ushort us; |
| volatile ushort2 us2; |
| volatile ushort3 us3; |
| volatile ushort4 us4; |
| volatile int i; |
| volatile int2 i2; |
| volatile int3 i3; |
| volatile int4 i4; |
| volatile uint ui; |
| volatile uint2 ui2; |
| volatile uint3 ui3; |
| volatile uint4 ui4; |
| volatile long l; |
| volatile long2 l2; |
| volatile long3 l3; |
| volatile long4 l4; |
| volatile ulong ul; |
| volatile ulong2 ul2; |
| volatile ulong3 ul3; |
| volatile ulong4 ul4; |
| volatile long long ll; |
| volatile unsigned long long ull; |
| volatile float f; |
| volatile float2 f2; |
| volatile float3 f3; |
| volatile float4 f4; |
| volatile double d; |
| volatile double2 d2; |
| volatile double3 d3; |
| volatile double4 d4; |
| float fa[16]; |
| |
| rs_allocation aChar; |
| rs_allocation aChar2; |
| rs_allocation aChar3; |
| rs_allocation aChar4; |
| rs_allocation aUChar; |
| rs_allocation aUChar2; |
| rs_allocation aUChar3; |
| rs_allocation aUChar4; |
| rs_allocation aShort; |
| rs_allocation aShort2; |
| rs_allocation aShort3; |
| rs_allocation aShort4; |
| rs_allocation aUShort; |
| rs_allocation aUShort2; |
| rs_allocation aUShort3; |
| rs_allocation aUShort4; |
| rs_allocation aInt; |
| rs_allocation aInt2; |
| rs_allocation aInt3; |
| rs_allocation aInt4; |
| rs_allocation aUInt; |
| rs_allocation aUInt2; |
| rs_allocation aUInt3; |
| rs_allocation aUInt4; |
| rs_allocation aLong; |
| rs_allocation aLong2; |
| rs_allocation aLong3; |
| rs_allocation aLong4; |
| rs_allocation aULong; |
| rs_allocation aULong2; |
| rs_allocation aULong3; |
| rs_allocation aULong4; |
| rs_allocation aFloat; |
| rs_allocation aFloat2; |
| rs_allocation aFloat3; |
| rs_allocation aFloat4; |
| rs_allocation aDouble; |
| rs_allocation aDouble2; |
| rs_allocation aDouble3; |
| rs_allocation aDouble4; |
| |
| rs_matrix2x2 m2x2; |
| rs_matrix3x3 m3x3; |
| rs_matrix4x4 m4x4; |
| |
| int RS_KERNEL testKernel(int v) { return v; } |
| |
| // This function just checks that all of the called functions are |
| // able to be linked. It is not intended to be executed! |
| void check_api_presence() { |
| /******************************** |
| * DO NOT EXECUTE THIS FUNCTION * |
| ********************************/ |
| rsSendToClientBlocking(RS_MSG_TEST_FAILED); |
| |
| // rs_allocation.rsh |
| c = rsGetElementAt_char(aChar, 0); |
| rsSetElementAt_char(aChar, c, 0); |
| c = rsGetElementAt_char(aChar, 0, 0); |
| rsSetElementAt_char(aChar, c, 0, 0); |
| c = rsGetElementAt_char(aChar, 0, 0, 0); |
| rsSetElementAt_char(aChar, c, 0, 0, 0); |
| c2 = rsGetElementAt_char2(aChar2, 0); |
| rsSetElementAt_char2(aChar2, c2, 0); |
| c2 = rsGetElementAt_char2(aChar2, 0, 0); |
| rsSetElementAt_char2(aChar2, c2, 0, 0); |
| c2 = rsGetElementAt_char2(aChar2, 0, 0, 0); |
| rsSetElementAt_char2(aChar2, c2, 0, 0, 0); |
| c3 = rsGetElementAt_char3(aChar3, 0); |
| rsSetElementAt_char3(aChar3, c3, 0); |
| c3 = rsGetElementAt_char3(aChar3, 0, 0); |
| rsSetElementAt_char3(aChar3, c3, 0, 0); |
| c3 = rsGetElementAt_char3(aChar3, 0, 0, 0); |
| rsSetElementAt_char3(aChar3, c3, 0, 0, 0); |
| c4 = rsGetElementAt_char4(aChar4, 0); |
| rsSetElementAt_char4(aChar4, c4, 0); |
| c4 = rsGetElementAt_char4(aChar4, 0, 0); |
| rsSetElementAt_char4(aChar4, c4, 0, 0); |
| c4 = rsGetElementAt_char4(aChar4, 0, 0, 0); |
| rsSetElementAt_char4(aChar4, c4, 0, 0, 0); |
| |
| uc = rsGetElementAt_uchar(aUChar, 0); |
| rsSetElementAt_uchar(aUChar, uc, 0); |
| uc = rsGetElementAt_uchar(aUChar, 0, 0); |
| rsSetElementAt_uchar(aUChar, uc, 0, 0); |
| uc = rsGetElementAt_uchar(aUChar, 0, 0, 0); |
| rsSetElementAt_uchar(aUChar, uc, 0, 0, 0); |
| uc2 = rsGetElementAt_uchar2(aUChar2, 0); |
| rsSetElementAt_uchar2(aUChar2, uc2, 0); |
| uc2 = rsGetElementAt_uchar2(aUChar2, 0, 0); |
| rsSetElementAt_uchar2(aUChar2, uc2, 0, 0); |
| uc2 = rsGetElementAt_uchar2(aUChar2, 0, 0, 0); |
| rsSetElementAt_uchar2(aUChar2, uc2, 0, 0, 0); |
| uc3 = rsGetElementAt_uchar3(aUChar3, 0); |
| rsSetElementAt_uchar3(aUChar3, uc3, 0); |
| uc3 = rsGetElementAt_uchar3(aUChar3, 0, 0); |
| rsSetElementAt_uchar3(aUChar3, uc3, 0, 0); |
| uc3 = rsGetElementAt_uchar3(aUChar3, 0, 0, 0); |
| rsSetElementAt_uchar3(aUChar3, uc3, 0, 0, 0); |
| uc4 = rsGetElementAt_uchar4(aUChar4, 0); |
| rsSetElementAt_uchar4(aUChar4, uc4, 0); |
| uc4 = rsGetElementAt_uchar4(aUChar4, 0, 0); |
| rsSetElementAt_uchar4(aUChar4, uc4, 0, 0); |
| uc4 = rsGetElementAt_uchar4(aUChar4, 0, 0, 0); |
| rsSetElementAt_uchar4(aUChar4, uc4, 0, 0, 0); |
| |
| s = rsGetElementAt_short(aShort, 0); |
| rsSetElementAt_short(aShort, s, 0); |
| s = rsGetElementAt_short(aShort, 0, 0); |
| rsSetElementAt_short(aShort, s, 0, 0); |
| s = rsGetElementAt_short(aShort, 0, 0, 0); |
| rsSetElementAt_short(aShort, s, 0, 0, 0); |
| s2 = rsGetElementAt_short2(aShort2, 0); |
| rsSetElementAt_short2(aShort2, s2, 0); |
| s2 = rsGetElementAt_short2(aShort2, 0, 0); |
| rsSetElementAt_short2(aShort2, s2, 0, 0); |
| s2 = rsGetElementAt_short2(aShort2, 0, 0, 0); |
| rsSetElementAt_short2(aShort2, s2, 0, 0, 0); |
| s3 = rsGetElementAt_short3(aShort3, 0); |
| rsSetElementAt_short3(aShort3, s3, 0); |
| s3 = rsGetElementAt_short3(aShort3, 0, 0); |
| rsSetElementAt_short3(aShort3, s3, 0, 0); |
| s3 = rsGetElementAt_short3(aShort3, 0, 0, 0); |
| rsSetElementAt_short3(aShort3, s3, 0, 0, 0); |
| s4 = rsGetElementAt_short4(aShort4, 0); |
| rsSetElementAt_short4(aShort4, s4, 0); |
| s4 = rsGetElementAt_short4(aShort4, 0, 0); |
| rsSetElementAt_short4(aShort4, s4, 0, 0); |
| s4 = rsGetElementAt_short4(aShort4, 0, 0, 0); |
| rsSetElementAt_short4(aShort4, s4, 0, 0, 0); |
| |
| us = rsGetElementAt_ushort(aUShort, 0); |
| rsSetElementAt_ushort(aUShort, us, 0); |
| us = rsGetElementAt_ushort(aUShort, 0, 0); |
| rsSetElementAt_ushort(aUShort, us, 0, 0); |
| us = rsGetElementAt_ushort(aUShort, 0, 0, 0); |
| rsSetElementAt_ushort(aUShort, us, 0, 0, 0); |
| us2 = rsGetElementAt_ushort2(aUShort2, 0); |
| rsSetElementAt_ushort2(aUShort2, us2, 0); |
| us2 = rsGetElementAt_ushort2(aUShort2, 0, 0); |
| rsSetElementAt_ushort2(aUShort2, us2, 0, 0); |
| us2 = rsGetElementAt_ushort2(aUShort2, 0, 0, 0); |
| rsSetElementAt_ushort2(aUShort2, us2, 0, 0, 0); |
| us3 = rsGetElementAt_ushort3(aUShort3, 0); |
| rsSetElementAt_ushort3(aUShort3, us3, 0); |
| us3 = rsGetElementAt_ushort3(aUShort3, 0, 0); |
| rsSetElementAt_ushort3(aUShort3, us3, 0, 0); |
| us3 = rsGetElementAt_ushort3(aUShort3, 0, 0, 0); |
| rsSetElementAt_ushort3(aUShort3, us3, 0, 0, 0); |
| us4 = rsGetElementAt_ushort4(aUShort4, 0); |
| rsSetElementAt_ushort4(aUShort4, us4, 0); |
| us4 = rsGetElementAt_ushort4(aUShort4, 0, 0); |
| rsSetElementAt_ushort4(aUShort4, us4, 0, 0); |
| us4 = rsGetElementAt_ushort4(aUShort4, 0, 0, 0); |
| rsSetElementAt_ushort4(aUShort4, us4, 0, 0, 0); |
| |
| i = rsGetElementAt_int(aInt, 0); |
| rsSetElementAt_int(aInt, i, 0); |
| i = rsGetElementAt_int(aInt, 0, 0); |
| rsSetElementAt_int(aInt, i, 0, 0); |
| i = rsGetElementAt_int(aInt, 0, 0, 0); |
| rsSetElementAt_int(aInt, i, 0, 0, 0); |
| i2 = rsGetElementAt_int2(aInt2, 0); |
| rsSetElementAt_int2(aInt2, i2, 0); |
| i2 = rsGetElementAt_int2(aInt2, 0, 0); |
| rsSetElementAt_int2(aInt2, i2, 0, 0); |
| i2 = rsGetElementAt_int2(aInt2, 0, 0, 0); |
| rsSetElementAt_int2(aInt2, i2, 0, 0, 0); |
| i3 = rsGetElementAt_int3(aInt3, 0); |
| rsSetElementAt_int3(aInt3, i3, 0); |
| i3 = rsGetElementAt_int3(aInt3, 0, 0); |
| rsSetElementAt_int3(aInt3, i3, 0, 0); |
| i3 = rsGetElementAt_int3(aInt3, 0, 0, 0); |
| rsSetElementAt_int3(aInt3, i3, 0, 0, 0); |
| i4 = rsGetElementAt_int4(aInt4, 0); |
| rsSetElementAt_int4(aInt4, i4, 0); |
| i4 = rsGetElementAt_int4(aInt4, 0, 0); |
| rsSetElementAt_int4(aInt4, i4, 0, 0); |
| i4 = rsGetElementAt_int4(aInt4, 0, 0, 0); |
| rsSetElementAt_int4(aInt4, i4, 0, 0, 0); |
| |
| ui = rsGetElementAt_uint(aUInt, 0); |
| rsSetElementAt_uint(aUInt, ui, 0); |
| ui = rsGetElementAt_uint(aUInt, 0, 0); |
| rsSetElementAt_uint(aUInt, ui, 0, 0); |
| ui = rsGetElementAt_uint(aUInt, 0, 0, 0); |
| rsSetElementAt_uint(aUInt, ui, 0, 0, 0); |
| ui2 = rsGetElementAt_uint2(aUInt2, 0); |
| rsSetElementAt_uint2(aUInt2, ui2, 0); |
| ui2 = rsGetElementAt_uint2(aUInt2, 0, 0); |
| rsSetElementAt_uint2(aUInt2, ui2, 0, 0); |
| ui2 = rsGetElementAt_uint2(aUInt2, 0, 0, 0); |
| rsSetElementAt_uint2(aUInt2, ui2, 0, 0, 0); |
| ui3 = rsGetElementAt_uint3(aUInt3, 0); |
| rsSetElementAt_uint3(aUInt3, ui3, 0); |
| ui3 = rsGetElementAt_uint3(aUInt3, 0, 0); |
| rsSetElementAt_uint3(aUInt3, ui3, 0, 0); |
| ui3 = rsGetElementAt_uint3(aUInt3, 0, 0, 0); |
| rsSetElementAt_uint3(aUInt3, ui3, 0, 0, 0); |
| ui4 = rsGetElementAt_uint4(aUInt4, 0); |
| rsSetElementAt_uint4(aUInt4, ui4, 0); |
| ui4 = rsGetElementAt_uint4(aUInt4, 0, 0); |
| rsSetElementAt_uint4(aUInt4, ui4, 0, 0); |
| ui4 = rsGetElementAt_uint4(aUInt4, 0, 0, 0); |
| rsSetElementAt_uint4(aUInt4, ui4, 0, 0, 0); |
| |
| l = rsGetElementAt_long(aLong, 0); |
| rsSetElementAt_long(aLong, l, 0); |
| l = rsGetElementAt_long(aLong, 0, 0); |
| rsSetElementAt_long(aLong, l, 0, 0); |
| l = rsGetElementAt_long(aLong, 0, 0, 0); |
| rsSetElementAt_long(aLong, l, 0, 0, 0); |
| l2 = rsGetElementAt_long2(aLong2, 0); |
| rsSetElementAt_long2(aLong2, l2, 0); |
| l2 = rsGetElementAt_long2(aLong2, 0, 0); |
| rsSetElementAt_long2(aLong2, l2, 0, 0); |
| l2 = rsGetElementAt_long2(aLong2, 0, 0, 0); |
| rsSetElementAt_long2(aLong2, l2, 0, 0, 0); |
| l3 = rsGetElementAt_long3(aLong3, 0); |
| rsSetElementAt_long3(aLong3, l3, 0); |
| l3 = rsGetElementAt_long3(aLong3, 0, 0); |
| rsSetElementAt_long3(aLong3, l3, 0, 0); |
| l3 = rsGetElementAt_long3(aLong3, 0, 0, 0); |
| rsSetElementAt_long3(aLong3, l3, 0, 0, 0); |
| l4 = rsGetElementAt_long4(aLong4, 0); |
| rsSetElementAt_long4(aLong4, l4, 0); |
| l4 = rsGetElementAt_long4(aLong4, 0, 0); |
| rsSetElementAt_long4(aLong4, l4, 0, 0); |
| l4 = rsGetElementAt_long4(aLong4, 0, 0, 0); |
| rsSetElementAt_long4(aLong4, l4, 0, 0, 0); |
| |
| ul = rsGetElementAt_ulong(aULong, 0); |
| rsSetElementAt_ulong(aULong, ul, 0); |
| ul = rsGetElementAt_ulong(aULong, 0, 0); |
| rsSetElementAt_ulong(aULong, ul, 0, 0); |
| ul = rsGetElementAt_ulong(aULong, 0, 0, 0); |
| rsSetElementAt_ulong(aULong, ul, 0, 0, 0); |
| ul2 = rsGetElementAt_ulong2(aULong2, 0); |
| rsSetElementAt_ulong2(aULong2, ul2, 0); |
| ul2 = rsGetElementAt_ulong2(aULong2, 0, 0); |
| rsSetElementAt_ulong2(aULong2, ul2, 0, 0); |
| ul2 = rsGetElementAt_ulong2(aULong2, 0, 0, 0); |
| rsSetElementAt_ulong2(aULong2, ul2, 0, 0, 0); |
| ul3 = rsGetElementAt_ulong3(aULong3, 0); |
| rsSetElementAt_ulong3(aULong3, ul3, 0); |
| ul3 = rsGetElementAt_ulong3(aULong3, 0, 0); |
| rsSetElementAt_ulong3(aULong3, ul3, 0, 0); |
| ul3 = rsGetElementAt_ulong3(aULong3, 0, 0, 0); |
| rsSetElementAt_ulong3(aULong3, ul3, 0, 0, 0); |
| ul4 = rsGetElementAt_ulong4(aULong4, 0); |
| rsSetElementAt_ulong4(aULong4, ul4, 0); |
| ul4 = rsGetElementAt_ulong4(aULong4, 0, 0); |
| rsSetElementAt_ulong4(aULong4, ul4, 0, 0); |
| ul4 = rsGetElementAt_ulong4(aULong4, 0, 0, 0); |
| rsSetElementAt_ulong4(aULong4, ul4, 0, 0, 0); |
| |
| f = rsGetElementAt_float(aFloat, 0); |
| rsSetElementAt_float(aFloat, f, 0); |
| f = rsGetElementAt_float(aFloat, 0, 0); |
| rsSetElementAt_float(aFloat, f, 0, 0); |
| f = rsGetElementAt_float(aFloat, 0, 0, 0); |
| rsSetElementAt_float(aFloat, f, 0, 0, 0); |
| f2 = rsGetElementAt_float2(aFloat2, 0); |
| rsSetElementAt_float2(aFloat2, f2, 0); |
| f2 = rsGetElementAt_float2(aFloat2, 0, 0); |
| rsSetElementAt_float2(aFloat2, f2, 0, 0); |
| f2 = rsGetElementAt_float2(aFloat2, 0, 0, 0); |
| rsSetElementAt_float2(aFloat2, f2, 0, 0, 0); |
| f3 = rsGetElementAt_float3(aFloat3, 0); |
| rsSetElementAt_float3(aFloat3, f3, 0); |
| f3 = rsGetElementAt_float3(aFloat3, 0, 0); |
| rsSetElementAt_float3(aFloat3, f3, 0, 0); |
| f3 = rsGetElementAt_float3(aFloat3, 0, 0, 0); |
| rsSetElementAt_float3(aFloat3, f3, 0, 0, 0); |
| f4 = rsGetElementAt_float4(aFloat4, 0); |
| rsSetElementAt_float4(aFloat4, f4, 0); |
| f4 = rsGetElementAt_float4(aFloat4, 0, 0); |
| rsSetElementAt_float4(aFloat4, f4, 0, 0); |
| f4 = rsGetElementAt_float4(aFloat4, 0, 0, 0); |
| rsSetElementAt_float4(aFloat4, f4, 0, 0, 0); |
| |
| d = rsGetElementAt_double(aDouble, 0); |
| rsSetElementAt_double(aDouble, d, 0); |
| d = rsGetElementAt_double(aDouble, 0, 0); |
| rsSetElementAt_double(aDouble, d, 0, 0); |
| d = rsGetElementAt_double(aDouble, 0, 0, 0); |
| rsSetElementAt_double(aDouble, d, 0, 0, 0); |
| d2 = rsGetElementAt_double2(aDouble2, 0); |
| rsSetElementAt_double2(aDouble2, d2, 0); |
| d2 = rsGetElementAt_double2(aDouble2, 0, 0); |
| rsSetElementAt_double2(aDouble2, d2, 0, 0); |
| d2 = rsGetElementAt_double2(aDouble2, 0, 0, 0); |
| rsSetElementAt_double2(aDouble2, d2, 0, 0, 0); |
| d3 = rsGetElementAt_double3(aDouble3, 0); |
| rsSetElementAt_double3(aDouble3, d3, 0); |
| d3 = rsGetElementAt_double3(aDouble3, 0, 0); |
| rsSetElementAt_double3(aDouble3, d3, 0, 0); |
| d3 = rsGetElementAt_double3(aDouble3, 0, 0, 0); |
| rsSetElementAt_double3(aDouble3, d3, 0, 0, 0); |
| d4 = rsGetElementAt_double4(aDouble4, 0); |
| rsSetElementAt_double4(aDouble4, d4, 0); |
| d4 = rsGetElementAt_double4(aDouble4, 0, 0); |
| rsSetElementAt_double4(aDouble4, d4, 0, 0); |
| d4 = rsGetElementAt_double4(aDouble4, 0, 0, 0); |
| rsSetElementAt_double4(aDouble4, d4, 0, 0, 0); |
| |
| uc3.x = rsGetElementAtYuv_uchar_Y(aUChar4, 0, 0); |
| uc3.y = rsGetElementAtYuv_uchar_U(aUChar4, 0, 0); |
| uc3.z = rsGetElementAtYuv_uchar_V(aUChar4, 0, 0); |
| |
| c3.x = *(char*)rsGetElementAt(aChar3, 0); |
| c3.y = *(char*)rsGetElementAt(aChar3, 0, 0); |
| c3.z = *(char*)rsGetElementAt(aChar3, 0, 0, 0); |
| |
| rsAllocationIoSend(aInt); |
| rsAllocationIoReceive(aInt); |
| |
| elemNonNull = rsAllocationGetElement(aInt); |
| |
| rsAllocationCopy1DRange(allocDst, 0, 0, 0, allocDst, 0, 0); |
| rsAllocationCopy2DRange(allocDst, 0, 0, 0, 0, 0, 0, allocDst, 0, 0, 0, 0); |
| |
| // rsSample routines |
| f4 += rsSample(allocDst, samplerNonNull, f); |
| f4 += rsSample(allocDst, samplerNonNull, f, f); |
| f4 += rsSample(allocDst, samplerNonNull, f2); |
| f4 += rsSample(allocDst, samplerNonNull, f2, f); |
| |
| // rs_atomic.rsh |
| rsAtomicInc(&i); |
| rsAtomicDec(&i); |
| rsAtomicAdd(&i, 1); |
| rsAtomicSub(&i, 2); |
| rsAtomicAnd(&i, 3); |
| rsAtomicOr(&i, 4); |
| rsAtomicXor(&i, 5); |
| rsAtomicMin(&i, 6); |
| rsAtomicMin(&ui, 6); |
| rsAtomicMax(&i, 7); |
| rsAtomicMax(&ui, 7); |
| rsAtomicCas(&i, 8, 9); |
| rsAtomicCas(&ui, 8, 9); |
| |
| // rs_cl.rsh |
| c2 = convert_char2(c2); |
| c2 = convert_char2(uc2); |
| c2 = convert_char2(s2); |
| c2 = convert_char2(us2); |
| c2 = convert_char2(i2); |
| c2 = convert_char2(ui2); |
| c2 = convert_char2(f2); |
| c3 = convert_char3(c3); |
| c3 = convert_char3(uc3); |
| c3 = convert_char3(s3); |
| c3 = convert_char3(us3); |
| c3 = convert_char3(i3); |
| c3 = convert_char3(ui3); |
| c3 = convert_char3(f3); |
| c4 = convert_char4(c4); |
| c4 = convert_char4(uc4); |
| c4 = convert_char4(s4); |
| c4 = convert_char4(us4); |
| c4 = convert_char4(i4); |
| c4 = convert_char4(ui4); |
| c4 = convert_char4(f4); |
| |
| uc2 = convert_uchar2(c2); |
| uc2 = convert_uchar2(uc2); |
| uc2 = convert_uchar2(s2); |
| uc2 = convert_uchar2(us2); |
| uc2 = convert_uchar2(i2); |
| uc2 = convert_uchar2(ui2); |
| uc2 = convert_uchar2(f2); |
| uc3 = convert_uchar3(c3); |
| uc3 = convert_uchar3(uc3); |
| uc3 = convert_uchar3(s3); |
| uc3 = convert_uchar3(us3); |
| uc3 = convert_uchar3(i3); |
| uc3 = convert_uchar3(ui3); |
| uc3 = convert_uchar3(f3); |
| uc4 = convert_uchar4(c4); |
| uc4 = convert_uchar4(uc4); |
| uc4 = convert_uchar4(s4); |
| uc4 = convert_uchar4(us4); |
| uc4 = convert_uchar4(i4); |
| uc4 = convert_uchar4(ui4); |
| uc4 = convert_uchar4(f4); |
| |
| s2 = convert_short2(c2); |
| s2 = convert_short2(uc2); |
| s2 = convert_short2(s2); |
| s2 = convert_short2(us2); |
| s2 = convert_short2(i2); |
| s2 = convert_short2(ui2); |
| s2 = convert_short2(f2); |
| s3 = convert_short3(c3); |
| s3 = convert_short3(uc3); |
| s3 = convert_short3(s3); |
| s3 = convert_short3(us3); |
| s3 = convert_short3(i3); |
| s3 = convert_short3(ui3); |
| s3 = convert_short3(f3); |
| s4 = convert_short4(c4); |
| s4 = convert_short4(uc4); |
| s4 = convert_short4(s4); |
| s4 = convert_short4(us4); |
| s4 = convert_short4(i4); |
| s4 = convert_short4(ui4); |
| s4 = convert_short4(f4); |
| |
| us2 = convert_ushort2(c2); |
| us2 = convert_ushort2(uc2); |
| us2 = convert_ushort2(s2); |
| us2 = convert_ushort2(us2); |
| us2 = convert_ushort2(i2); |
| us2 = convert_ushort2(ui2); |
| us2 = convert_ushort2(f2); |
| us3 = convert_ushort3(c3); |
| us3 = convert_ushort3(uc3); |
| us3 = convert_ushort3(s3); |
| us3 = convert_ushort3(us3); |
| us3 = convert_ushort3(i3); |
| us3 = convert_ushort3(ui3); |
| us3 = convert_ushort3(f3); |
| us4 = convert_ushort4(c4); |
| us4 = convert_ushort4(uc4); |
| us4 = convert_ushort4(s4); |
| us4 = convert_ushort4(us4); |
| us4 = convert_ushort4(i4); |
| us4 = convert_ushort4(ui4); |
| us4 = convert_ushort4(f4); |
| |
| i2 = convert_int2(c2); |
| i2 = convert_int2(uc2); |
| i2 = convert_int2(s2); |
| i2 = convert_int2(us2); |
| i2 = convert_int2(i2); |
| i2 = convert_int2(ui2); |
| i2 = convert_int2(f2); |
| i3 = convert_int3(c3); |
| i3 = convert_int3(uc3); |
| i3 = convert_int3(s3); |
| i3 = convert_int3(us3); |
| i3 = convert_int3(i3); |
| i3 = convert_int3(ui3); |
| i3 = convert_int3(f3); |
| i4 = convert_int4(c4); |
| i4 = convert_int4(uc4); |
| i4 = convert_int4(s4); |
| i4 = convert_int4(us4); |
| i4 = convert_int4(i4); |
| i4 = convert_int4(ui4); |
| i4 = convert_int4(f4); |
| |
| ui2 = convert_uint2(c2); |
| ui2 = convert_uint2(uc2); |
| ui2 = convert_uint2(s2); |
| ui2 = convert_uint2(us2); |
| ui2 = convert_uint2(i2); |
| ui2 = convert_uint2(ui2); |
| ui2 = convert_uint2(f2); |
| ui3 = convert_uint3(c3); |
| ui3 = convert_uint3(uc3); |
| ui3 = convert_uint3(s3); |
| ui3 = convert_uint3(us3); |
| ui3 = convert_uint3(i3); |
| ui3 = convert_uint3(ui3); |
| ui3 = convert_uint3(f3); |
| ui4 = convert_uint4(c4); |
| ui4 = convert_uint4(uc4); |
| ui4 = convert_uint4(s4); |
| ui4 = convert_uint4(us4); |
| ui4 = convert_uint4(i4); |
| ui4 = convert_uint4(ui4); |
| ui4 = convert_uint4(f4); |
| |
| f2 = convert_float2(c2); |
| f2 = convert_float2(uc2); |
| f2 = convert_float2(s2); |
| f2 = convert_float2(us2); |
| f2 = convert_float2(i2); |
| f2 = convert_float2(ui2); |
| f2 = convert_float2(f2); |
| f3 = convert_float3(c3); |
| f3 = convert_float3(uc3); |
| f3 = convert_float3(s3); |
| f3 = convert_float3(us3); |
| f3 = convert_float3(i3); |
| f3 = convert_float3(ui3); |
| f3 = convert_float3(f3); |
| f4 = convert_float4(c4); |
| f4 = convert_float4(uc4); |
| f4 = convert_float4(s4); |
| f4 = convert_float4(us4); |
| f4 = convert_float4(i4); |
| f4 = convert_float4(ui4); |
| f4 = convert_float4(f4); |
| |
| // FIXME: No support for long/double (either from/to). |
| |
| // math |
| f = acos(f); |
| f2 = acos(f2); |
| f3 = acos(f3); |
| f4 = acos(f4); |
| f = acosh(f); |
| f2 = acosh(f2); |
| f3 = acosh(f3); |
| f4 = acosh(f4); |
| f = acospi(f); |
| f2 = acospi(f2); |
| f3 = acospi(f3); |
| f4 = acospi(f4); |
| |
| f = asin(f); |
| f2 = asin(f2); |
| f3 = asin(f3); |
| f4 = asin(f4); |
| f = asinh(f); |
| f2 = asinh(f2); |
| f3 = asinh(f3); |
| f4 = asinh(f4); |
| f = asinpi(f); |
| f2 = asinpi(f2); |
| f3 = asinpi(f3); |
| f4 = asinpi(f4); |
| |
| f = atan(f); |
| f2 = atan(f2); |
| f3 = atan(f3); |
| f4 = atan(f4); |
| f = atanh(f); |
| f2 = atanh(f2); |
| f3 = atanh(f3); |
| f4 = atanh(f4); |
| f = atanpi(f); |
| f2 = atanpi(f2); |
| f3 = atanpi(f3); |
| f4 = atanpi(f4); |
| |
| f = atan2(f, f); |
| f2 = atan2(f2, f2); |
| f3 = atan2(f3, f3); |
| f4 = atan2(f4, f4); |
| f = atan2pi(f, f); |
| f2 = atan2pi(f2, f2); |
| f3 = atan2pi(f3, f3); |
| f4 = atan2(f4, f4); |
| |
| f = cbrt(f); |
| f2 = cbrt(f2); |
| f3 = cbrt(f3); |
| f4 = cbrt(f4); |
| |
| f = ceil(f); |
| f2 = ceil(f2); |
| f3 = ceil(f3); |
| f4 = ceil(f4); |
| |
| f = copysign(f, f); |
| f2 = copysign(f2, f2); |
| f3 = copysign(f3, f3); |
| f4 = copysign(f4, f4); |
| |
| f = cos(f); |
| f2 = cos(f2); |
| f3 = cos(f3); |
| f4 = cos(f4); |
| f = cosh(f); |
| f2 = cosh(f2); |
| f3 = cosh(f3); |
| f4 = cosh(f4); |
| f = cospi(f); |
| f2 = cospi(f2); |
| f3 = cospi(f3); |
| f4 = cospi(f4); |
| |
| f = erfc(f); |
| f2 = erfc(f2); |
| f3 = erfc(f3); |
| f4 = erfc(f4); |
| f = erf(f); |
| f2 = erf(f2); |
| f3 = erf(f3); |
| f4 = erf(f4); |
| |
| f = exp(f); |
| f2 = exp(f2); |
| f3 = exp(f3); |
| f4 = exp(f4); |
| f = exp2(f); |
| f2 = exp2(f2); |
| f3 = exp2(f3); |
| f4 = exp2(f4); |
| |
| f = pow(f, f); |
| f2 = pow(f2, f2); |
| f3 = pow(f3, f3); |
| f4 = pow(f4, f4); |
| |
| f = exp10(f); |
| f2 = exp10(f2); |
| f3 = exp10(f3); |
| f4 = exp10(f4); |
| |
| f = expm1(f); |
| f2 = expm1(f2); |
| f3 = expm1(f3); |
| f4 = expm1(f4); |
| |
| f = fabs(f); |
| f2 = fabs(f2); |
| f3 = fabs(f3); |
| f4 = fabs(f4); |
| |
| f = fabs(f); |
| f2 = fabs(f2); |
| f3 = fabs(f3); |
| f4 = fabs(f4); |
| |
| f = fdim(f, f); |
| f2 = fdim(f2, f2); |
| f3 = fdim(f3, f3); |
| f4 = fdim(f4, f4); |
| |
| f = floor(f); |
| f2 = floor(f2); |
| f3 = floor(f3); |
| f4 = floor(f4); |
| |
| f = fma(f, f, f); |
| f2 = fma(f2, f2, f2); |
| f3 = fma(f3, f3, f3); |
| f4 = fma(f4, f4, f4); |
| |
| f = fmax(f, f); |
| f2 = fmax(f2, f2); |
| f3 = fmax(f3, f3); |
| f4 = fmax(f4, f4); |
| |
| f = fmin(f, f); |
| f2 = fmin(f2, f2); |
| f3 = fmin(f3, f3); |
| f4 = fmin(f4, f4); |
| |
| f = fmod(f, f); |
| f2 = fmod(f2, f2); |
| f3 = fmod(f3, f3); |
| f4 = fmod(f4, f4); |
| |
| f = fract(f, (float *)&f); |
| f2 = fract(f2, (float2 *)&f2); |
| f3 = fract(f3, (float3 *)&f3); |
| f4 = fract(f4, (float4 *)&f4); |
| f = fract(f); |
| f2 = fract(f2); |
| f3 = fract(f3); |
| f4 = fract(f4); |
| |
| f = frexp(f, (int *)&i); |
| f2 = frexp(f2, (int2 *)&i2); |
| f3 = frexp(f3, (int3 *)&i3); |
| f4 = frexp(f4, (int4 *)&i4); |
| |
| f = hypot(f, f); |
| f2 = hypot(f2, f2); |
| f3 = hypot(f3, f3); |
| f4 = hypot(f4, f4); |
| |
| i = ilogb(f); |
| i2 = ilogb(f2); |
| i3 = ilogb(f3); |
| i4 = ilogb(f4); |
| |
| f = ldexp(f, i); |
| f2 = ldexp(f2, i2); |
| f3 = ldexp(f3, i3); |
| f4 = ldexp(f4, i4); |
| f2 = ldexp(f2, i); |
| f3 = ldexp(f3, i); |
| f4 = ldexp(f4, i); |
| |
| f = lgamma(f); |
| f2 = lgamma(f2); |
| f3 = lgamma(f3); |
| f4 = lgamma(f4); |
| f = lgamma(f, (int *)&i); |
| f2 = lgamma(f2, (int2 *)&i2); |
| f3 = lgamma(f3, (int3 *)&i3); |
| f4 = lgamma(f4, (int4 *)&i4); |
| |
| f = log(f); |
| f2 = log(f2); |
| f3 = log(f3); |
| f4 = log(f4); |
| |
| f = log10(f); |
| f2 = log10(f2); |
| f3 = log10(f3); |
| f4 = log10(f4); |
| |
| f = log2(f); |
| f2 = log2(f2); |
| f3 = log2(f3); |
| f4 = log2(f4); |
| |
| f = log1p(f); |
| f2 = log1p(f2); |
| f3 = log1p(f3); |
| f4 = log1p(f4); |
| |
| f = logb(f); |
| f2 = logb(f2); |
| f3 = logb(f3); |
| f4 = logb(f4); |
| |
| f = mad(f, f, f); |
| f2 = mad(f2, f2, f2); |
| f3 = mad(f3, f3, f3); |
| f4 = mad(f4, f4, f4); |
| |
| f = modf(f, (float *)&f); |
| f2 = modf(f2, (float2 *)&f2); |
| f3 = modf(f3, (float3 *)&f3); |
| f4 = modf(f4, (float4 *)&f4); |
| |
| f = nan(ui); |
| |
| f = nextafter(f, f); |
| f2 = nextafter(f2, f2); |
| f3 = nextafter(f3, f3); |
| f4 = nextafter(f4, f4); |
| |
| f = pown(f, i); |
| f2 = pown(f2, i2); |
| f3 = pown(f3, i3); |
| f4 = pown(f4, i4); |
| |
| f = powr(f, f); |
| f2 = powr(f2, f2); |
| f3 = powr(f3, f3); |
| f4 = powr(f4, f4); |
| |
| f = remainder(f, f); |
| f2 = remainder(f2, f2); |
| f3 = remainder(f3, f3); |
| f4 = remainder(f4, f4); |
| |
| f = remquo(f, f, (int *)&i); |
| f2 = remquo(f2, f2, (int2 *)&i2); |
| f3 = remquo(f3, f3, (int3 *)&i3); |
| f4 = remquo(f4, f4, (int4 *)&i4); |
| |
| f = rint(f); |
| f2 = rint(f2); |
| f3 = rint(f3); |
| f4 = rint(f4); |
| |
| f = rootn(f, i); |
| f2 = rootn(f2, i2); |
| f3 = rootn(f3, i3); |
| f4 = rootn(f4, i4); |
| |
| f = round(f); |
| f2 = round(f2); |
| f3 = round(f3); |
| f4 = round(f4); |
| |
| f = rsqrt(f); |
| f2 = rsqrt(f2); |
| f3 = rsqrt(f3); |
| f4 = rsqrt(f4); |
| |
| f = sin(f); |
| f2 = sin(f2); |
| f3 = sin(f3); |
| f4 = sin(f4); |
| f = sinh(f); |
| f2 = sinh(f2); |
| f3 = sinh(f3); |
| f4 = sinh(f4); |
| f = sinpi(f); |
| f2 = sinpi(f2); |
| f3 = sinpi(f3); |
| f4 = sinpi(f4); |
| |
| f = sincos(f, (float *)&f); |
| f2 = sincos(f2, (float2 *)&f2); |
| f3 = sincos(f3, (float3 *)&f3); |
| f4 = sincos(f4, (float4 *)&f4); |
| |
| f = tan(f); |
| f2 = tan(f2); |
| f3 = tan(f3); |
| f4 = tan(f4); |
| f = tanh(f); |
| f2 = tanh(f2); |
| f3 = tanh(f3); |
| f4 = tanh(f4); |
| f = tanpi(f); |
| f2 = tanpi(f2); |
| f3 = tanpi(f3); |
| f4 = tanpi(f4); |
| |
| f = tgamma(f); |
| f2 = tgamma(f2); |
| f3 = tgamma(f3); |
| f4 = tgamma(f4); |
| |
| f = trunc(f); |
| f2 = trunc(f2); |
| f3 = trunc(f3); |
| f4 = trunc(f4); |
| |
| uc = abs(c); |
| uc2 = abs(c2); |
| uc3 = abs(c3); |
| uc4 = abs(c4); |
| us = abs(s); |
| us2 = abs(s2); |
| us3 = abs(s3); |
| us4 = abs(s4); |
| ui = abs(i); |
| ui2 = abs(i2); |
| ui3 = abs(i3); |
| ui4 = abs(i4); |
| |
| c = clz(c); |
| c2 = clz(c2); |
| c3 = clz(c3); |
| c4 = clz(c4); |
| uc = clz(uc); |
| uc2 = clz(uc2); |
| uc3 = clz(uc3); |
| uc4 = clz(uc4); |
| s = clz(s); |
| s2 = clz(s2); |
| s3 = clz(s3); |
| s4 = clz(s4); |
| us = clz(us); |
| us2 = clz(us2); |
| us3 = clz(us3); |
| us4 = clz(us4); |
| i = clz(i); |
| i2 = clz(i2); |
| i3 = clz(i3); |
| i4 = clz(i4); |
| ui = clz(ui); |
| ui2 = clz(ui2); |
| ui3 = clz(ui3); |
| ui4 = clz(ui4); |
| |
| c = min(c, c); |
| c2 = min(c2, c2); |
| c3 = min(c3, c3); |
| c4 = min(c4, c4); |
| uc = min(uc, uc); |
| uc2 = min(uc2, uc2); |
| uc3 = min(uc3, uc3); |
| uc4 = min(uc4, uc4); |
| s = min(s, s); |
| s2 = min(s2, s2); |
| s3 = min(s3, s3); |
| s4 = min(s4, s4); |
| us = min(us, us); |
| us2 = min(us2, us2); |
| us3 = min(us3, us3); |
| us4 = min(us4, us4); |
| i = min(i, i); |
| i2 = min(i2, i2); |
| i3 = min(i3, i3); |
| i4 = min(i4, i4); |
| ui = min(ui, ui); |
| ui2 = min(ui2, ui2); |
| ui3 = min(ui3, ui3); |
| ui4 = min(ui4, ui4); |
| f = min(f, f); |
| f2 = min(f2, f2); |
| f3 = min(f3, f3); |
| f4 = min(f4, f4); |
| f2 = min(f2, f); |
| f3 = min(f3, f); |
| f4 = min(f4, f); |
| |
| c = max(c, c); |
| c2 = max(c2, c2); |
| c3 = max(c3, c3); |
| c4 = max(c4, c4); |
| uc = max(uc, uc); |
| uc2 = max(uc2, uc2); |
| uc3 = max(uc3, uc3); |
| uc4 = max(uc4, uc4); |
| s = max(s, s); |
| s2 = max(s2, s2); |
| s3 = max(s3, s3); |
| s4 = max(s4, s4); |
| us = max(us, us); |
| us2 = max(us2, us2); |
| us3 = max(us3, us3); |
| us4 = max(us4, us4); |
| i = max(i, i); |
| i2 = max(i2, i2); |
| i3 = max(i3, i3); |
| i4 = max(i4, i4); |
| ui = max(ui, ui); |
| ui2 = max(ui2, ui2); |
| ui3 = max(ui3, ui3); |
| ui4 = max(ui4, ui4); |
| f = max(f, f); |
| f2 = max(f2, f2); |
| f3 = max(f3, f3); |
| f4 = max(f4, f4); |
| f2 = max(f2, f); |
| f3 = max(f3, f); |
| f4 = max(f4, f); |
| |
| f = clamp(f, f, f); |
| f2 = clamp(f2, f2, f2); |
| f3 = clamp(f3, f3, f3); |
| f4 = clamp(f4, f4, f4); |
| f2 = clamp(f2, f, f); |
| f3 = clamp(f3, f, f); |
| f4 = clamp(f4, f, f); |
| // FIXME: other clamps only in 19+ |
| |
| f = degrees(f); |
| f2 = degrees(f2); |
| f3 = degrees(f3); |
| f4 = degrees(f4); |
| |
| f = mix(f, f, f); |
| f2 = mix(f2, f2, f2); |
| f3 = mix(f3, f3, f3); |
| f4 = mix(f4, f4, f4); |
| f2 = mix(f2, f2, f); |
| f3 = mix(f3, f3, f); |
| f4 = mix(f4, f4, f); |
| |
| f = radians(f); |
| f2 = radians(f2); |
| f3 = radians(f3); |
| f4 = radians(f4); |
| |
| f = step(f, f); |
| f2 = step(f2, f2); |
| f3 = step(f3, f3); |
| f4 = step(f4, f4); |
| f2 = step(f2, f); |
| f3 = step(f3, f); |
| f4 = step(f4, f); |
| |
| f = sign(f); |
| f2 = sign(f2); |
| f3 = sign(f3); |
| f4 = sign(f4); |
| |
| f3 = cross(f3, f3); |
| f4 = cross(f4, f4); |
| |
| f = dot(f, f); |
| f = dot(f2, f2); |
| f = dot(f3, f3); |
| f = dot(f4, f4); |
| |
| f = length(f); |
| f = length(f2); |
| f = length(f3); |
| f = length(f4); |
| |
| f = distance(f, f); |
| f = distance(f2, f2); |
| f = distance(f3, f3); |
| f = distance(f4, f4); |
| |
| f = normalize(f); |
| f2 = normalize(f2); |
| f3 = normalize(f3); |
| f4 = normalize(f4); |
| |
| f = half_recip(f); |
| f2 = half_recip(f2); |
| f3 = half_recip(f3); |
| f4 = half_recip(f4); |
| |
| f = half_sqrt(f); |
| f2 = half_sqrt(f2); |
| f3 = half_sqrt(f3); |
| f4 = half_sqrt(f4); |
| |
| f = half_rsqrt(f); |
| f2 = half_rsqrt(f2); |
| f3 = half_rsqrt(f3); |
| f4 = half_rsqrt(f4); |
| |
| f = fast_length(f); |
| f = fast_length(f2); |
| f = fast_length(f3); |
| f = fast_length(f4); |
| |
| f = fast_distance(f, f); |
| f = fast_distance(f2, f2); |
| f = fast_distance(f3, f3); |
| f = fast_distance(f4, f4); |
| |
| f = fast_normalize(f); |
| f2 = fast_normalize(f2); |
| f3 = fast_normalize(f3); |
| f4 = fast_normalize(f4); |
| |
| f = native_exp2(f); |
| f2 = native_exp2(f2); |
| f3 = native_exp2(f3); |
| f4 = native_exp2(f4); |
| |
| f = native_exp(f); |
| f2 = native_exp(f2); |
| f3 = native_exp(f3); |
| f4 = native_exp(f4); |
| |
| f = native_exp10(f); |
| f2 = native_exp10(f2); |
| f3 = native_exp10(f3); |
| f4 = native_exp10(f4); |
| |
| f = native_log2(f); |
| f2 = native_log2(f2); |
| f3 = native_log2(f3); |
| f4 = native_log2(f4); |
| |
| f = native_log(f); |
| f2 = native_log(f2); |
| f3 = native_log(f3); |
| f4 = native_log(f4); |
| |
| f = native_log10(f); |
| f2 = native_log10(f2); |
| f3 = native_log10(f3); |
| f4 = native_log10(f4); |
| |
| f = native_powr(f, f); |
| f2 = native_powr(f2, f2); |
| f3 = native_powr(f3, f3); |
| f4 = native_powr(f4, f4); |
| |
| // rs_core.rsh |
| b = rsSendToClient(0); |
| b = rsSendToClient(0, NULL, 0); |
| rsSendToClientBlocking(0); |
| rsSendToClientBlocking(0, NULL, 0); |
| |
| rsForEach(testKernel, allocNonNull, allocNonNull); |
| |
| // rs_debug.rsh |
| rsDebug("", f); |
| rsDebug("", f, f); |
| rsDebug("", f, f, f); |
| rsDebug("", f, f, f, f); |
| rsDebug("", f2); |
| rsDebug("", f3); |
| rsDebug("", f4); |
| rsDebug("", d); |
| rsDebug("", &m4x4); |
| rsDebug("", &m3x3); |
| rsDebug("", &m2x2); |
| rsDebug("", i); |
| rsDebug("", ui); |
| rsDebug("", l); |
| rsDebug("", ul); |
| rsDebug("", ll); |
| rsDebug("", ull); |
| rsDebug("", (const void *)&i); |
| rsDebug("", c); |
| rsDebug("", c2); |
| rsDebug("", c3); |
| rsDebug("", c4); |
| rsDebug("", uc); |
| rsDebug("", uc2); |
| rsDebug("", uc3); |
| rsDebug("", uc4); |
| rsDebug("", s); |
| rsDebug("", s2); |
| rsDebug("", s3); |
| rsDebug("", s4); |
| rsDebug("", us); |
| rsDebug("", us2); |
| rsDebug("", us3); |
| rsDebug("", us4); |
| rsDebug("", i2); |
| rsDebug("", i3); |
| rsDebug("", i4); |
| rsDebug("", ui2); |
| rsDebug("", ui3); |
| rsDebug("", ui4); |
| rsDebug("", l2); |
| rsDebug("", l3); |
| rsDebug("", l4); |
| rsDebug("", ul2); |
| rsDebug("", ul3); |
| rsDebug("", ul4); |
| |
| // rs_element.rsh |
| ui = rsElementGetSubElementCount(elemNonNull); |
| elemNull = rsElementGetSubElement(elemNonNull, 0); |
| ui = rsElementGetSubElementNameLength(elemNonNull, 0); |
| ui = rsElementGetSubElementName(elemNonNull, 0, NULL, 0); |
| ui = rsElementGetSubElementArraySize(elemNonNull, 0); |
| ui = rsElementGetSubElementOffsetBytes(elemNonNull, 0); |
| ui = rsElementGetBytesSize(elemNonNull); |
| |
| dt = rsElementGetDataType(elemNonNull); |
| dk = rsElementGetDataKind(elemNonNull); |
| |
| ui = rsElementGetVectorSize(elemNonNull); |
| |
| // rs_math.rsh |
| i = rsRand(i); |
| i = rsRand(i, i); |
| f = rsRand(f); |
| f = fract(f); |
| ui = clamp(ui, ui, ui); |
| i = clamp(i, i, i); |
| us = clamp(us, us, us); |
| s = clamp(s, s, s); |
| uc = clamp(uc, uc, uc); |
| c = clamp(c, c, c); |
| |
| // skip always-inlined rsExtractFrustumPlanes |
| // skip always-inlined rsIsSphereInFrustum |
| |
| uc4 = rsPackColorTo8888(f, f, f); |
| uc4 = rsPackColorTo8888(f, f, f, f); |
| uc4 = rsPackColorTo8888(f3); |
| uc4 = rsPackColorTo8888(f4); |
| f4 = rsUnpackColor8888(uc4); |
| uc4 = rsYuvToRGBA_uchar4(uc, uc, uc); |
| f4 = rsYuvToRGBA_float4(uc, uc, uc); |
| |
| // rs_matrix.rsh |
| rsMatrixSet(&m4x4, ui, ui, f); |
| rsMatrixSet(&m3x3, ui, ui, f); |
| rsMatrixSet(&m2x2, ui, ui, f); |
| f = rsMatrixGet(&m4x4, ui, ui); |
| f = rsMatrixGet(&m3x3, ui, ui); |
| f = rsMatrixGet(&m2x2, ui, ui); |
| rsMatrixLoadIdentity(&m4x4); |
| rsMatrixLoadIdentity(&m3x3); |
| rsMatrixLoadIdentity(&m2x2); |
| rsMatrixLoad(&m4x4, fa); |
| rsMatrixLoad(&m3x3, fa); |
| rsMatrixLoad(&m2x2, fa); |
| rsMatrixLoad(&m4x4, &m4x4); |
| rsMatrixLoad(&m4x4, &m3x3); |
| rsMatrixLoad(&m4x4, &m2x2); |
| rsMatrixLoad(&m3x3, &m3x3); |
| rsMatrixLoad(&m2x2, &m2x2); |
| rsMatrixLoadRotate(&m4x4, f, f, f, f); |
| rsMatrixLoadScale(&m4x4, f, f, f); |
| rsMatrixLoadTranslate(&m4x4, f, f, f); |
| rsMatrixLoadMultiply(&m4x4, &m4x4, &m4x4); |
| rsMatrixLoadMultiply(&m3x3, &m3x3, &m3x3); |
| rsMatrixLoadMultiply(&m2x2, &m2x2, &m2x2); |
| rsMatrixMultiply(&m4x4, &m4x4); |
| rsMatrixMultiply(&m3x3, &m3x3); |
| rsMatrixMultiply(&m2x2, &m2x2); |
| rsMatrixRotate(&m4x4, f, f, f, f); |
| rsMatrixScale(&m4x4, f, f, f); |
| rsMatrixTranslate(&m4x4, f, f, f); |
| rsMatrixLoadOrtho(&m4x4, f, f, f, f, f, f); |
| rsMatrixLoadFrustum(&m4x4, f, f, f, f, f, f); |
| rsMatrixLoadPerspective(&m4x4, f, f, f, f); |
| f4 = rsMatrixMultiply(&m4x4, f4); |
| f4 = rsMatrixMultiply(&m4x4, f3); |
| f4 = rsMatrixMultiply(&m4x4, f2); |
| f3 = rsMatrixMultiply(&m3x3, f3); |
| f3 = rsMatrixMultiply(&m3x3, f2); |
| f2 = rsMatrixMultiply(&m2x2, f2); |
| b = rsMatrixInverse(&m4x4); |
| b = rsMatrixInverseTranspose(&m4x4); |
| rsMatrixTranspose(&m4x4); |
| rsMatrixTranspose(&m3x3); |
| rsMatrixTranspose(&m2x2); |
| |
| // rs_object.rsh |
| rsSetObject(&elemNonNull, elemNonNull); |
| rsSetObject(&typeNonNull, typeNonNull); |
| rsSetObject(&allocNonNull, allocNonNull); |
| rsSetObject(&samplerNonNull, samplerNonNull); |
| rsSetObject(&scriptNonNull, scriptNonNull); |
| rsClearObject(&elemNonNull); |
| rsClearObject(&typeNonNull); |
| rsClearObject(&allocNonNull); |
| rsClearObject(&samplerNonNull); |
| rsClearObject(&scriptNonNull); |
| b = rsIsObject(elemNonNull); |
| b = rsIsObject(typeNonNull); |
| b = rsIsObject(allocNonNull); |
| b = rsIsObject(samplerNonNull); |
| b = rsIsObject(scriptNonNull); |
| |
| // rs_quaternion.rsh skipped because all functions are static. |
| |
| // rs_sampler.rsh |
| rsv = rsSamplerGetMinification(samplerNonNull); |
| rsv = rsSamplerGetMagnification(samplerNonNull); |
| rsv = rsSamplerGetWrapS(samplerNonNull); |
| rsv = rsSamplerGetWrapT(samplerNonNull); |
| f = rsSamplerGetAnisotropy(samplerNonNull); |
| |
| // rs_time.rsh |
| rst = rsTime(NULL); |
| rsLocaltime((rs_tm *) &rstm, (rs_time_t *) &rst); |
| ll = rsUptimeMillis(); |
| ll = rsUptimeNanos(); |
| f = rsGetDt(); |
| |
| /******************************** |
| * DO NOT EXECUTE THIS FUNCTION * |
| ********************************/ |
| } |
| |
| static bool test_obj_api() { |
| bool failed = false; |
| |
| _RS_ASSERT(!rsIsObject(elemNull)); |
| _RS_ASSERT(rsIsObject(elemNonNull)); |
| rsSetObject(&elemNull, elemNonNull); |
| _RS_ASSERT(rsIsObject(elemNull)); |
| rsClearObject(&elemNull); |
| _RS_ASSERT(!rsIsObject(elemNull)); |
| |
| _RS_ASSERT(!rsIsObject(typeNull)); |
| _RS_ASSERT(rsIsObject(typeNonNull)); |
| rsSetObject(&typeNull, typeNonNull); |
| _RS_ASSERT(rsIsObject(typeNull)); |
| rsClearObject(&typeNull); |
| _RS_ASSERT(!rsIsObject(typeNull)); |
| |
| _RS_ASSERT(!rsIsObject(allocNull)); |
| _RS_ASSERT(rsIsObject(allocNonNull)); |
| rsSetObject(&allocNull, allocNonNull); |
| _RS_ASSERT(rsIsObject(allocNull)); |
| rsClearObject(&allocNull); |
| _RS_ASSERT(!rsIsObject(allocNull)); |
| |
| _RS_ASSERT(!rsIsObject(samplerNull)); |
| _RS_ASSERT(rsIsObject(samplerNonNull)); |
| rsSetObject(&samplerNull, samplerNonNull); |
| _RS_ASSERT(rsIsObject(samplerNull)); |
| rsClearObject(&samplerNull); |
| _RS_ASSERT(!rsIsObject(samplerNull)); |
| |
| _RS_ASSERT(!rsIsObject(scriptNull)); |
| _RS_ASSERT(rsIsObject(scriptNonNull)); |
| rsSetObject(&scriptNull, scriptNonNull); |
| _RS_ASSERT(rsIsObject(scriptNull)); |
| rsClearObject(&scriptNull); |
| _RS_ASSERT(!rsIsObject(scriptNull)); |
| |
| if (failed) { |
| rsDebug("test_obj_api FAILED", -1); |
| } |
| else { |
| rsDebug("test_obj_api PASSED", 0); |
| } |
| |
| return failed; |
| } |
| |
| |
| static bool test_rs_alloc_api() { |
| bool failed = false; |
| rs_allocation a = allocDst; |
| _RS_ASSERT(rsIsObject(a)); |
| _RS_ASSERT(rsAllocationGetDimX(a) == x); |
| _RS_ASSERT(rsAllocationGetDimY(a) == y); |
| _RS_ASSERT(rsAllocationGetDimZ(a) == z); |
| _RS_ASSERT(rsAllocationGetDimLOD(a) == 0); |
| _RS_ASSERT(rsAllocationGetDimFaces(a) == 0); |
| rsSetElementAt_char(a, 5, 1, 0); |
| if (y > 0) |
| rsAllocationCopy2DRange(allocDst, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X, |
| x, 1, a, 0, 0, 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X); |
| else |
| rsAllocationCopy1DRange(allocDst, 0, 0, x, a, 0, 0); |
| _RS_ASSERT(rsGetElementAt_char(allocDst, 1, 0) == 5); |
| if (failed) { |
| rsDebug("test_rs_alloc_api FAILED", -1); |
| } |
| else { |
| rsDebug("test_rs_alloc_api PASSED", 0); |
| } |
| |
| return failed; |
| } |
| |
| |
| void api_test() { |
| bool failed = false; |
| failed |= test_obj_api(); |
| failed |= test_rs_alloc_api(); |
| |
| if (failed) { |
| rsSendToClientBlocking(RS_MSG_TEST_FAILED); |
| } |
| else { |
| rsSendToClientBlocking(RS_MSG_TEST_PASSED); |
| } |
| } |
| |