Loading api/current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -16782,6 +16782,9 @@ package android.renderscript { method public void addF32(android.renderscript.Float3); method public void addF32(android.renderscript.Float4); method public void addF64(double); method public void addF64(android.renderscript.Double2); method public void addF64(android.renderscript.Double3); method public void addF64(android.renderscript.Double4); method public void addI16(short); method public void addI16(android.renderscript.Short2); method public void addI16(android.renderscript.Short3); Loading @@ -16791,6 +16794,9 @@ package android.renderscript { method public void addI32(android.renderscript.Int3); method public void addI32(android.renderscript.Int4); method public void addI64(long); method public void addI64(android.renderscript.Long2); method public void addI64(android.renderscript.Long3); method public void addI64(android.renderscript.Long4); method public void addI8(byte); method public void addI8(android.renderscript.Byte2); method public void addI8(android.renderscript.Byte3); Loading @@ -16808,6 +16814,9 @@ package android.renderscript { method public void addU32(android.renderscript.Long3); method public void addU32(android.renderscript.Long4); method public void addU64(long); method public void addU64(android.renderscript.Long2); method public void addU64(android.renderscript.Long3); method public void addU64(android.renderscript.Long4); method public void addU8(short); method public void addU8(android.renderscript.Short2); method public void addU8(android.renderscript.Short3); graphics/java/android/renderscript/FieldPacker.java +48 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,22 @@ public class FieldPacker { addF32(v.w); } public void addF64(Double2 v) { addF64(v.x); addF64(v.y); } public void addF64(Double3 v) { addF64(v.x); addF64(v.y); addF64(v.z); } public void addF64(Double4 v) { addF64(v.x); addF64(v.y); addF64(v.z); addF64(v.w); } public void addI8(Byte2 v) { addI8(v.x); addI8(v.y); Loading Loading @@ -261,6 +277,38 @@ public class FieldPacker { addU32(v.w); } public void addI64(Long2 v) { addI64(v.x); addI64(v.y); } public void addI64(Long3 v) { addI64(v.x); addI64(v.y); addI64(v.z); } public void addI64(Long4 v) { addI64(v.x); addI64(v.y); addI64(v.z); addI64(v.w); } public void addU64(Long2 v) { addU64(v.x); addU64(v.y); } public void addU64(Long3 v) { addU64(v.x); addU64(v.y); addU64(v.z); } public void addU64(Long4 v) { addU64(v.x); addU64(v.y); addU64(v.z); addU64(v.w); } public void addMatrix(Matrix4f v) { for (int i=0; i < v.mMat.length; i++) { addF32(v.mMat[i]); Loading tests/RenderScriptTests/tests/src/com/android/rs/test/RSTestCore.java +2 −1 Original line number Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * Copyright (C) 2008-2011 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. Loading Loading @@ -65,6 +65,7 @@ public class RSTestCore { unitTests = new ArrayList<UnitTest>(); unitTests.add(new UT_primitives(this, mRes, mCtx)); unitTests.add(new UT_vector(this, mRes, mCtx)); unitTests.add(new UT_rsdebug(this, mRes, mCtx)); unitTests.add(new UT_rstime(this, mRes, mCtx)); unitTests.add(new UT_rstypes(this, mRes, mCtx)); Loading tests/RenderScriptTests/tests/src/com/android/rs/test/UT_vector.java 0 → 100644 +318 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 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. */ package com.android.rs.test; import android.content.Context; import android.content.res.Resources; import android.renderscript.*; public class UT_vector extends UnitTest { private Resources mRes; protected UT_vector(RSTestCore rstc, Resources res, Context ctx) { super(rstc, "Vector", ctx); mRes = res; } private boolean initializeGlobals(ScriptC_vector s) { Float2 F2 = s.get_f2(); if (F2.x != 1.0f || F2.y != 2.0f) { return false; } F2.x = 2.99f; F2.y = 3.99f; s.set_f2(F2); Float3 F3 = s.get_f3(); if (F3.x != 1.0f || F3.y != 2.0f || F3.z != 3.0f) { return false; } F3.x = 2.99f; F3.y = 3.99f; F3.z = 4.99f; s.set_f3(F3); Float4 F4 = s.get_f4(); if (F4.x != 1.0f || F4.y != 2.0f || F4.z != 3.0f || F4.w != 4.0f) { return false; } F4.x = 2.99f; F4.y = 3.99f; F4.z = 4.99f; F4.w = 5.99f; s.set_f4(F4); Double2 D2 = s.get_d2(); if (D2.x != 1.0 || D2.y != 2.0) { return false; } D2.x = 2.99; D2.y = 3.99; s.set_d2(D2); Double3 D3 = s.get_d3(); if (D3.x != 1.0 || D3.y != 2.0 || D3.z != 3.0) { return false; } D3.x = 2.99; D3.y = 3.99; D3.z = 4.99; s.set_d3(D3); Double4 D4 = s.get_d4(); if (D4.x != 1.0 || D4.y != 2.0 || D4.z != 3.0 || D4.w != 4.0) { return false; } D4.x = 2.99; D4.y = 3.99; D4.z = 4.99; D4.w = 5.99; s.set_d4(D4); Byte2 B2 = s.get_i8_2(); if (B2.x != 1 || B2.y != 2) { return false; } B2.x = 2; B2.y = 3; s.set_i8_2(B2); Byte3 B3 = s.get_i8_3(); if (B3.x != 1 || B3.y != 2 || B3.z != 3) { return false; } B3.x = 2; B3.y = 3; B3.z = 4; s.set_i8_3(B3); Byte4 B4 = s.get_i8_4(); if (B4.x != 1 || B4.y != 2 || B4.z != 3 || B4.w != 4) { return false; } B4.x = 2; B4.y = 3; B4.z = 4; B4.w = 5; s.set_i8_4(B4); Short2 S2 = s.get_u8_2(); if (S2.x != 1 || S2.y != 2) { return false; } S2.x = 2; S2.y = 3; s.set_u8_2(S2); Short3 S3 = s.get_u8_3(); if (S3.x != 1 || S3.y != 2 || S3.z != 3) { return false; } S3.x = 2; S3.y = 3; S3.z = 4; s.set_u8_3(S3); Short4 S4 = s.get_u8_4(); if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { return false; } S4.x = 2; S4.y = 3; S4.z = 4; S4.w = 5; s.set_u8_4(S4); S2 = s.get_i16_2(); if (S2.x != 1 || S2.y != 2) { return false; } S2.x = 2; S2.y = 3; s.set_i16_2(S2); S3 = s.get_i16_3(); if (S3.x != 1 || S3.y != 2 || S3.z != 3) { return false; } S3.x = 2; S3.y = 3; S3.z = 4; s.set_i16_3(S3); S4 = s.get_i16_4(); if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { return false; } S4.x = 2; S4.y = 3; S4.z = 4; S4.w = 5; s.set_i16_4(S4); Int2 I2 = s.get_u16_2(); if (I2.x != 1 || I2.y != 2) { return false; } I2.x = 2; I2.y = 3; s.set_u16_2(I2); Int3 I3 = s.get_u16_3(); if (I3.x != 1 || I3.y != 2 || I3.z != 3) { return false; } I3.x = 2; I3.y = 3; I3.z = 4; s.set_u16_3(I3); Int4 I4 = s.get_u16_4(); if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { return false; } I4.x = 2; I4.y = 3; I4.z = 4; I4.w = 5; s.set_u16_4(I4); I2 = s.get_i32_2(); if (I2.x != 1 || I2.y != 2) { return false; } I2.x = 2; I2.y = 3; s.set_i32_2(I2); I3 = s.get_i32_3(); if (I3.x != 1 || I3.y != 2 || I3.z != 3) { return false; } I3.x = 2; I3.y = 3; I3.z = 4; s.set_i32_3(I3); I4 = s.get_i32_4(); if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { return false; } I4.x = 2; I4.y = 3; I4.z = 4; I4.w = 5; s.set_i32_4(I4); Long2 L2 = s.get_u32_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_u32_2(L2); Long3 L3 = s.get_u32_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_u32_3(L3); Long4 L4 = s.get_u32_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_u32_4(L4); L2 = s.get_i64_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_i64_2(L2); L3 = s.get_i64_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_i64_3(L3); L4 = s.get_i64_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_i64_4(L4); L2 = s.get_u64_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_u64_2(L2); L3 = s.get_u64_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_u64_3(L3); L4 = s.get_u64_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_u64_4(L4); return true; } public void run() { RenderScript pRS = RenderScript.create(mCtx); ScriptC_vector s = new ScriptC_vector(pRS, mRes, R.raw.vector); pRS.setMessageHandler(mRsMessage); if (!initializeGlobals(s)) { result = -1; } else { s.invoke_vector_test(); pRS.finish(); waitForMessage(); } pRS.destroy(); } } tests/RenderScriptTests/tests/src/com/android/rs/test/vector.rs 0 → 100644 +198 −0 Original line number Diff line number Diff line #include "shared.rsh" // Testing vector types float2 f2 = { 1.0f, 2.0f }; float3 f3 = { 1.0f, 2.0f, 3.0f }; float4 f4 = { 1.0f, 2.0f, 3.0f, 4.0f }; double2 d2 = { 1.0, 2.0 }; double3 d3 = { 1.0, 2.0, 3.0 }; double4 d4 = { 1.0, 2.0, 3.0, 4.0 }; char2 i8_2 = { 1, 2 }; char3 i8_3 = { 1, 2, 3 }; char4 i8_4 = { 1, 2, 3, 4 }; uchar2 u8_2 = { 1, 2 }; uchar3 u8_3 = { 1, 2, 3 }; uchar4 u8_4 = { 1, 2, 3, 4 }; short2 i16_2 = { 1, 2 }; short3 i16_3 = { 1, 2, 3 }; short4 i16_4 = { 1, 2, 3, 4 }; ushort2 u16_2 = { 1, 2 }; ushort3 u16_3 = { 1, 2, 3 }; ushort4 u16_4 = { 1, 2, 3, 4 }; int2 i32_2 = { 1, 2 }; int3 i32_3 = { 1, 2, 3 }; int4 i32_4 = { 1, 2, 3, 4 }; uint2 u32_2 = { 1, 2 }; uint3 u32_3 = { 1, 2, 3 }; uint4 u32_4 = { 1, 2, 3, 4 }; long2 i64_2 = { 1, 2 }; long3 i64_3 = { 1, 2, 3 }; long4 i64_4 = { 1, 2, 3, 4 }; ulong2 u64_2 = { 1, 2 }; ulong3 u64_3 = { 1, 2, 3 }; ulong4 u64_4 = { 1, 2, 3, 4 }; static bool test_vector_types() { bool failed = false; rsDebug("Testing F32", 0); _RS_ASSERT(f2.x == 2.99f); _RS_ASSERT(f2.y == 3.99f); _RS_ASSERT(f3.x == 2.99f); _RS_ASSERT(f3.y == 3.99f); _RS_ASSERT(f3.z == 4.99f); _RS_ASSERT(f4.x == 2.99f); _RS_ASSERT(f4.y == 3.99f); _RS_ASSERT(f4.z == 4.99f); _RS_ASSERT(f4.w == 5.99f); rsDebug("Testing F64", 0); _RS_ASSERT(d2.x == 2.99); _RS_ASSERT(d2.y == 3.99); _RS_ASSERT(d3.x == 2.99); _RS_ASSERT(d3.y == 3.99); _RS_ASSERT(d3.z == 4.99); _RS_ASSERT(d4.x == 2.99); _RS_ASSERT(d4.y == 3.99); _RS_ASSERT(d4.z == 4.99); _RS_ASSERT(d4.w == 5.99); rsDebug("Testing I8", 0); _RS_ASSERT(i8_2.x == 2); _RS_ASSERT(i8_2.y == 3); _RS_ASSERT(i8_3.x == 2); _RS_ASSERT(i8_3.y == 3); _RS_ASSERT(i8_3.z == 4); _RS_ASSERT(i8_4.x == 2); _RS_ASSERT(i8_4.y == 3); _RS_ASSERT(i8_4.z == 4); _RS_ASSERT(i8_4.w == 5); rsDebug("Testing U8", 0); _RS_ASSERT(u8_2.x == 2); _RS_ASSERT(u8_2.y == 3); _RS_ASSERT(u8_3.x == 2); _RS_ASSERT(u8_3.y == 3); _RS_ASSERT(u8_3.z == 4); _RS_ASSERT(u8_4.x == 2); _RS_ASSERT(u8_4.y == 3); _RS_ASSERT(u8_4.z == 4); _RS_ASSERT(u8_4.w == 5); rsDebug("Testing I16", 0); _RS_ASSERT(i16_2.x == 2); _RS_ASSERT(i16_2.y == 3); _RS_ASSERT(i16_3.x == 2); _RS_ASSERT(i16_3.y == 3); _RS_ASSERT(i16_3.z == 4); _RS_ASSERT(i16_4.x == 2); _RS_ASSERT(i16_4.y == 3); _RS_ASSERT(i16_4.z == 4); _RS_ASSERT(i16_4.w == 5); rsDebug("Testing U16", 0); _RS_ASSERT(u16_2.x == 2); _RS_ASSERT(u16_2.y == 3); _RS_ASSERT(u16_3.x == 2); _RS_ASSERT(u16_3.y == 3); _RS_ASSERT(u16_3.z == 4); _RS_ASSERT(u16_4.x == 2); _RS_ASSERT(u16_4.y == 3); _RS_ASSERT(u16_4.z == 4); _RS_ASSERT(u16_4.w == 5); rsDebug("Testing I32", 0); _RS_ASSERT(i32_2.x == 2); _RS_ASSERT(i32_2.y == 3); _RS_ASSERT(i32_3.x == 2); _RS_ASSERT(i32_3.y == 3); _RS_ASSERT(i32_3.z == 4); _RS_ASSERT(i32_4.x == 2); _RS_ASSERT(i32_4.y == 3); _RS_ASSERT(i32_4.z == 4); _RS_ASSERT(i32_4.w == 5); rsDebug("Testing U32", 0); _RS_ASSERT(u32_2.x == 2); _RS_ASSERT(u32_2.y == 3); _RS_ASSERT(u32_3.x == 2); _RS_ASSERT(u32_3.y == 3); _RS_ASSERT(u32_3.z == 4); _RS_ASSERT(u32_4.x == 2); _RS_ASSERT(u32_4.y == 3); _RS_ASSERT(u32_4.z == 4); _RS_ASSERT(u32_4.w == 5); rsDebug("Testing I64", 0); _RS_ASSERT(i64_2.x == 2); _RS_ASSERT(i64_2.y == 3); _RS_ASSERT(i64_3.x == 2); _RS_ASSERT(i64_3.y == 3); _RS_ASSERT(i64_3.z == 4); _RS_ASSERT(i64_4.x == 2); _RS_ASSERT(i64_4.y == 3); _RS_ASSERT(i64_4.z == 4); _RS_ASSERT(i64_4.w == 5); rsDebug("Testing U64", 0); _RS_ASSERT(u64_2.x == 2); _RS_ASSERT(u64_2.y == 3); _RS_ASSERT(u64_3.x == 2); _RS_ASSERT(u64_3.y == 3); _RS_ASSERT(u64_3.z == 4); _RS_ASSERT(u64_4.x == 2); _RS_ASSERT(u64_4.y == 3); _RS_ASSERT(u64_4.z == 4); _RS_ASSERT(u64_4.w == 5); if (failed) { rsDebug("test_vector FAILED", 0); } else { rsDebug("test_vector PASSED", 0); } return failed; } void vector_test() { bool failed = false; failed |= test_vector_types(); if (failed) { rsSendToClientBlocking(RS_MSG_TEST_FAILED); } else { rsSendToClientBlocking(RS_MSG_TEST_PASSED); } } Loading
api/current.txt +9 −0 Original line number Diff line number Diff line Loading @@ -16782,6 +16782,9 @@ package android.renderscript { method public void addF32(android.renderscript.Float3); method public void addF32(android.renderscript.Float4); method public void addF64(double); method public void addF64(android.renderscript.Double2); method public void addF64(android.renderscript.Double3); method public void addF64(android.renderscript.Double4); method public void addI16(short); method public void addI16(android.renderscript.Short2); method public void addI16(android.renderscript.Short3); Loading @@ -16791,6 +16794,9 @@ package android.renderscript { method public void addI32(android.renderscript.Int3); method public void addI32(android.renderscript.Int4); method public void addI64(long); method public void addI64(android.renderscript.Long2); method public void addI64(android.renderscript.Long3); method public void addI64(android.renderscript.Long4); method public void addI8(byte); method public void addI8(android.renderscript.Byte2); method public void addI8(android.renderscript.Byte3); Loading @@ -16808,6 +16814,9 @@ package android.renderscript { method public void addU32(android.renderscript.Long3); method public void addU32(android.renderscript.Long4); method public void addU64(long); method public void addU64(android.renderscript.Long2); method public void addU64(android.renderscript.Long3); method public void addU64(android.renderscript.Long4); method public void addU8(short); method public void addU8(android.renderscript.Short2); method public void addU8(android.renderscript.Short3);
graphics/java/android/renderscript/FieldPacker.java +48 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,22 @@ public class FieldPacker { addF32(v.w); } public void addF64(Double2 v) { addF64(v.x); addF64(v.y); } public void addF64(Double3 v) { addF64(v.x); addF64(v.y); addF64(v.z); } public void addF64(Double4 v) { addF64(v.x); addF64(v.y); addF64(v.z); addF64(v.w); } public void addI8(Byte2 v) { addI8(v.x); addI8(v.y); Loading Loading @@ -261,6 +277,38 @@ public class FieldPacker { addU32(v.w); } public void addI64(Long2 v) { addI64(v.x); addI64(v.y); } public void addI64(Long3 v) { addI64(v.x); addI64(v.y); addI64(v.z); } public void addI64(Long4 v) { addI64(v.x); addI64(v.y); addI64(v.z); addI64(v.w); } public void addU64(Long2 v) { addU64(v.x); addU64(v.y); } public void addU64(Long3 v) { addU64(v.x); addU64(v.y); addU64(v.z); } public void addU64(Long4 v) { addU64(v.x); addU64(v.y); addU64(v.z); addU64(v.w); } public void addMatrix(Matrix4f v) { for (int i=0; i < v.mMat.length; i++) { addF32(v.mMat[i]); Loading
tests/RenderScriptTests/tests/src/com/android/rs/test/RSTestCore.java +2 −1 Original line number Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * Copyright (C) 2008-2011 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. Loading Loading @@ -65,6 +65,7 @@ public class RSTestCore { unitTests = new ArrayList<UnitTest>(); unitTests.add(new UT_primitives(this, mRes, mCtx)); unitTests.add(new UT_vector(this, mRes, mCtx)); unitTests.add(new UT_rsdebug(this, mRes, mCtx)); unitTests.add(new UT_rstime(this, mRes, mCtx)); unitTests.add(new UT_rstypes(this, mRes, mCtx)); Loading
tests/RenderScriptTests/tests/src/com/android/rs/test/UT_vector.java 0 → 100644 +318 −0 Original line number Diff line number Diff line /* * Copyright (C) 2011 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. */ package com.android.rs.test; import android.content.Context; import android.content.res.Resources; import android.renderscript.*; public class UT_vector extends UnitTest { private Resources mRes; protected UT_vector(RSTestCore rstc, Resources res, Context ctx) { super(rstc, "Vector", ctx); mRes = res; } private boolean initializeGlobals(ScriptC_vector s) { Float2 F2 = s.get_f2(); if (F2.x != 1.0f || F2.y != 2.0f) { return false; } F2.x = 2.99f; F2.y = 3.99f; s.set_f2(F2); Float3 F3 = s.get_f3(); if (F3.x != 1.0f || F3.y != 2.0f || F3.z != 3.0f) { return false; } F3.x = 2.99f; F3.y = 3.99f; F3.z = 4.99f; s.set_f3(F3); Float4 F4 = s.get_f4(); if (F4.x != 1.0f || F4.y != 2.0f || F4.z != 3.0f || F4.w != 4.0f) { return false; } F4.x = 2.99f; F4.y = 3.99f; F4.z = 4.99f; F4.w = 5.99f; s.set_f4(F4); Double2 D2 = s.get_d2(); if (D2.x != 1.0 || D2.y != 2.0) { return false; } D2.x = 2.99; D2.y = 3.99; s.set_d2(D2); Double3 D3 = s.get_d3(); if (D3.x != 1.0 || D3.y != 2.0 || D3.z != 3.0) { return false; } D3.x = 2.99; D3.y = 3.99; D3.z = 4.99; s.set_d3(D3); Double4 D4 = s.get_d4(); if (D4.x != 1.0 || D4.y != 2.0 || D4.z != 3.0 || D4.w != 4.0) { return false; } D4.x = 2.99; D4.y = 3.99; D4.z = 4.99; D4.w = 5.99; s.set_d4(D4); Byte2 B2 = s.get_i8_2(); if (B2.x != 1 || B2.y != 2) { return false; } B2.x = 2; B2.y = 3; s.set_i8_2(B2); Byte3 B3 = s.get_i8_3(); if (B3.x != 1 || B3.y != 2 || B3.z != 3) { return false; } B3.x = 2; B3.y = 3; B3.z = 4; s.set_i8_3(B3); Byte4 B4 = s.get_i8_4(); if (B4.x != 1 || B4.y != 2 || B4.z != 3 || B4.w != 4) { return false; } B4.x = 2; B4.y = 3; B4.z = 4; B4.w = 5; s.set_i8_4(B4); Short2 S2 = s.get_u8_2(); if (S2.x != 1 || S2.y != 2) { return false; } S2.x = 2; S2.y = 3; s.set_u8_2(S2); Short3 S3 = s.get_u8_3(); if (S3.x != 1 || S3.y != 2 || S3.z != 3) { return false; } S3.x = 2; S3.y = 3; S3.z = 4; s.set_u8_3(S3); Short4 S4 = s.get_u8_4(); if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { return false; } S4.x = 2; S4.y = 3; S4.z = 4; S4.w = 5; s.set_u8_4(S4); S2 = s.get_i16_2(); if (S2.x != 1 || S2.y != 2) { return false; } S2.x = 2; S2.y = 3; s.set_i16_2(S2); S3 = s.get_i16_3(); if (S3.x != 1 || S3.y != 2 || S3.z != 3) { return false; } S3.x = 2; S3.y = 3; S3.z = 4; s.set_i16_3(S3); S4 = s.get_i16_4(); if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { return false; } S4.x = 2; S4.y = 3; S4.z = 4; S4.w = 5; s.set_i16_4(S4); Int2 I2 = s.get_u16_2(); if (I2.x != 1 || I2.y != 2) { return false; } I2.x = 2; I2.y = 3; s.set_u16_2(I2); Int3 I3 = s.get_u16_3(); if (I3.x != 1 || I3.y != 2 || I3.z != 3) { return false; } I3.x = 2; I3.y = 3; I3.z = 4; s.set_u16_3(I3); Int4 I4 = s.get_u16_4(); if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { return false; } I4.x = 2; I4.y = 3; I4.z = 4; I4.w = 5; s.set_u16_4(I4); I2 = s.get_i32_2(); if (I2.x != 1 || I2.y != 2) { return false; } I2.x = 2; I2.y = 3; s.set_i32_2(I2); I3 = s.get_i32_3(); if (I3.x != 1 || I3.y != 2 || I3.z != 3) { return false; } I3.x = 2; I3.y = 3; I3.z = 4; s.set_i32_3(I3); I4 = s.get_i32_4(); if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { return false; } I4.x = 2; I4.y = 3; I4.z = 4; I4.w = 5; s.set_i32_4(I4); Long2 L2 = s.get_u32_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_u32_2(L2); Long3 L3 = s.get_u32_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_u32_3(L3); Long4 L4 = s.get_u32_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_u32_4(L4); L2 = s.get_i64_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_i64_2(L2); L3 = s.get_i64_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_i64_3(L3); L4 = s.get_i64_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_i64_4(L4); L2 = s.get_u64_2(); if (L2.x != 1 || L2.y != 2) { return false; } L2.x = 2; L2.y = 3; s.set_u64_2(L2); L3 = s.get_u64_3(); if (L3.x != 1 || L3.y != 2 || L3.z != 3) { return false; } L3.x = 2; L3.y = 3; L3.z = 4; s.set_u64_3(L3); L4 = s.get_u64_4(); if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { return false; } L4.x = 2; L4.y = 3; L4.z = 4; L4.w = 5; s.set_u64_4(L4); return true; } public void run() { RenderScript pRS = RenderScript.create(mCtx); ScriptC_vector s = new ScriptC_vector(pRS, mRes, R.raw.vector); pRS.setMessageHandler(mRsMessage); if (!initializeGlobals(s)) { result = -1; } else { s.invoke_vector_test(); pRS.finish(); waitForMessage(); } pRS.destroy(); } }
tests/RenderScriptTests/tests/src/com/android/rs/test/vector.rs 0 → 100644 +198 −0 Original line number Diff line number Diff line #include "shared.rsh" // Testing vector types float2 f2 = { 1.0f, 2.0f }; float3 f3 = { 1.0f, 2.0f, 3.0f }; float4 f4 = { 1.0f, 2.0f, 3.0f, 4.0f }; double2 d2 = { 1.0, 2.0 }; double3 d3 = { 1.0, 2.0, 3.0 }; double4 d4 = { 1.0, 2.0, 3.0, 4.0 }; char2 i8_2 = { 1, 2 }; char3 i8_3 = { 1, 2, 3 }; char4 i8_4 = { 1, 2, 3, 4 }; uchar2 u8_2 = { 1, 2 }; uchar3 u8_3 = { 1, 2, 3 }; uchar4 u8_4 = { 1, 2, 3, 4 }; short2 i16_2 = { 1, 2 }; short3 i16_3 = { 1, 2, 3 }; short4 i16_4 = { 1, 2, 3, 4 }; ushort2 u16_2 = { 1, 2 }; ushort3 u16_3 = { 1, 2, 3 }; ushort4 u16_4 = { 1, 2, 3, 4 }; int2 i32_2 = { 1, 2 }; int3 i32_3 = { 1, 2, 3 }; int4 i32_4 = { 1, 2, 3, 4 }; uint2 u32_2 = { 1, 2 }; uint3 u32_3 = { 1, 2, 3 }; uint4 u32_4 = { 1, 2, 3, 4 }; long2 i64_2 = { 1, 2 }; long3 i64_3 = { 1, 2, 3 }; long4 i64_4 = { 1, 2, 3, 4 }; ulong2 u64_2 = { 1, 2 }; ulong3 u64_3 = { 1, 2, 3 }; ulong4 u64_4 = { 1, 2, 3, 4 }; static bool test_vector_types() { bool failed = false; rsDebug("Testing F32", 0); _RS_ASSERT(f2.x == 2.99f); _RS_ASSERT(f2.y == 3.99f); _RS_ASSERT(f3.x == 2.99f); _RS_ASSERT(f3.y == 3.99f); _RS_ASSERT(f3.z == 4.99f); _RS_ASSERT(f4.x == 2.99f); _RS_ASSERT(f4.y == 3.99f); _RS_ASSERT(f4.z == 4.99f); _RS_ASSERT(f4.w == 5.99f); rsDebug("Testing F64", 0); _RS_ASSERT(d2.x == 2.99); _RS_ASSERT(d2.y == 3.99); _RS_ASSERT(d3.x == 2.99); _RS_ASSERT(d3.y == 3.99); _RS_ASSERT(d3.z == 4.99); _RS_ASSERT(d4.x == 2.99); _RS_ASSERT(d4.y == 3.99); _RS_ASSERT(d4.z == 4.99); _RS_ASSERT(d4.w == 5.99); rsDebug("Testing I8", 0); _RS_ASSERT(i8_2.x == 2); _RS_ASSERT(i8_2.y == 3); _RS_ASSERT(i8_3.x == 2); _RS_ASSERT(i8_3.y == 3); _RS_ASSERT(i8_3.z == 4); _RS_ASSERT(i8_4.x == 2); _RS_ASSERT(i8_4.y == 3); _RS_ASSERT(i8_4.z == 4); _RS_ASSERT(i8_4.w == 5); rsDebug("Testing U8", 0); _RS_ASSERT(u8_2.x == 2); _RS_ASSERT(u8_2.y == 3); _RS_ASSERT(u8_3.x == 2); _RS_ASSERT(u8_3.y == 3); _RS_ASSERT(u8_3.z == 4); _RS_ASSERT(u8_4.x == 2); _RS_ASSERT(u8_4.y == 3); _RS_ASSERT(u8_4.z == 4); _RS_ASSERT(u8_4.w == 5); rsDebug("Testing I16", 0); _RS_ASSERT(i16_2.x == 2); _RS_ASSERT(i16_2.y == 3); _RS_ASSERT(i16_3.x == 2); _RS_ASSERT(i16_3.y == 3); _RS_ASSERT(i16_3.z == 4); _RS_ASSERT(i16_4.x == 2); _RS_ASSERT(i16_4.y == 3); _RS_ASSERT(i16_4.z == 4); _RS_ASSERT(i16_4.w == 5); rsDebug("Testing U16", 0); _RS_ASSERT(u16_2.x == 2); _RS_ASSERT(u16_2.y == 3); _RS_ASSERT(u16_3.x == 2); _RS_ASSERT(u16_3.y == 3); _RS_ASSERT(u16_3.z == 4); _RS_ASSERT(u16_4.x == 2); _RS_ASSERT(u16_4.y == 3); _RS_ASSERT(u16_4.z == 4); _RS_ASSERT(u16_4.w == 5); rsDebug("Testing I32", 0); _RS_ASSERT(i32_2.x == 2); _RS_ASSERT(i32_2.y == 3); _RS_ASSERT(i32_3.x == 2); _RS_ASSERT(i32_3.y == 3); _RS_ASSERT(i32_3.z == 4); _RS_ASSERT(i32_4.x == 2); _RS_ASSERT(i32_4.y == 3); _RS_ASSERT(i32_4.z == 4); _RS_ASSERT(i32_4.w == 5); rsDebug("Testing U32", 0); _RS_ASSERT(u32_2.x == 2); _RS_ASSERT(u32_2.y == 3); _RS_ASSERT(u32_3.x == 2); _RS_ASSERT(u32_3.y == 3); _RS_ASSERT(u32_3.z == 4); _RS_ASSERT(u32_4.x == 2); _RS_ASSERT(u32_4.y == 3); _RS_ASSERT(u32_4.z == 4); _RS_ASSERT(u32_4.w == 5); rsDebug("Testing I64", 0); _RS_ASSERT(i64_2.x == 2); _RS_ASSERT(i64_2.y == 3); _RS_ASSERT(i64_3.x == 2); _RS_ASSERT(i64_3.y == 3); _RS_ASSERT(i64_3.z == 4); _RS_ASSERT(i64_4.x == 2); _RS_ASSERT(i64_4.y == 3); _RS_ASSERT(i64_4.z == 4); _RS_ASSERT(i64_4.w == 5); rsDebug("Testing U64", 0); _RS_ASSERT(u64_2.x == 2); _RS_ASSERT(u64_2.y == 3); _RS_ASSERT(u64_3.x == 2); _RS_ASSERT(u64_3.y == 3); _RS_ASSERT(u64_3.z == 4); _RS_ASSERT(u64_4.x == 2); _RS_ASSERT(u64_4.y == 3); _RS_ASSERT(u64_4.z == 4); _RS_ASSERT(u64_4.w == 5); if (failed) { rsDebug("test_vector FAILED", 0); } else { rsDebug("test_vector PASSED", 0); } return failed; } void vector_test() { bool failed = false; failed |= test_vector_types(); if (failed) { rsSendToClientBlocking(RS_MSG_TEST_FAILED); } else { rsSendToClientBlocking(RS_MSG_TEST_PASSED); } }