FieldPacker.java revision 908f238ae73283a7f3d49ddf7a562ccbd1a9ac44
145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams/* 245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * Copyright (C) 2012 The Android Open Source Project 345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * 445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * you may not use this file except in compliance with the License. 645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * You may obtain a copy of the License at 745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * 845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * 1045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * Unless required by applicable law or agreed to in writing, software 1145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 1245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * See the License for the specific language governing permissions and 1445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * limitations under the License. 1545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams */ 1645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 1745d443665f5ce7efa934706a89883f0cc87f3513Jason Samspackage android.support.v8.renderscript; 1845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 196a2a5e0e083881c7a7b78892c03b49eece99d9fcTim Murrayimport android.os.SystemProperties; 20257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hinesimport android.support.v8.renderscript.RenderScript; 2145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 2245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams/** 2345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * Utility class for packing arguments and structures from Android system objects to 24032b2c2c8a3cf2c55f6f08557f2648d799766c4eStephen Hines * RenderScript objects. 25032b2c2c8a3cf2c55f6f08557f2648d799766c4eStephen Hines * 26032b2c2c8a3cf2c55f6f08557f2648d799766c4eStephen Hines * This class is only intended to be used to support the 27032b2c2c8a3cf2c55f6f08557f2648d799766c4eStephen Hines * reflected code generated by the RS tool chain. It should not 28032b2c2c8a3cf2c55f6f08557f2648d799766c4eStephen Hines * be called directly. 2945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams * 3045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams **/ 3145d443665f5ce7efa934706a89883f0cc87f3513Jason Samspublic class FieldPacker { 329cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray private FieldPackerThunker mN; 33baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray 3445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public FieldPacker(int len) { 3545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mPos = 0; 3645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mLen = len; 3745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData = new byte[len]; 38257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 399cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN = new FieldPackerThunker(len); 40baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 4145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 4245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 4345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void align(int v) { 44257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 45baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.align(v); 46baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 47baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 4845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((v <= 0) || ((v & (v - 1)) != 0)) { 4945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new RSIllegalArgumentException("argument must be a non-negative non-zero power of 2: " + v); 5045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 5145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 5245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams while ((mPos & (v - 1)) != 0) { 5345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = 0; 5445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 5545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 5645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 5745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void reset() { 58257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 59baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.reset(); 60baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 61baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 6245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mPos = 0; 6345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 6445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void reset(int i) { 65257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 66baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.reset(i); 67baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 68baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 6945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((i < 0) || (i >= mLen)) { 7045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 7145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 7245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mPos = i; 7345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 7445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 7545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void skip(int i) { 76257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 77baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.skip(i); 78baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 79baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 8045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams int res = mPos + i; 8145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((res < 0) || (res > mLen)) { 8245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 8345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 8445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mPos = res; 8545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 8645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 8745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI8(byte v) { 88257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 89baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addI8(v); 90baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 91baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 9245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = v; 9345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 9445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 9545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI16(short v) { 96257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 97baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addI16(v); 98baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 99baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 10045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(2); 10145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 10245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v >> 8); 10345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 10445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 10545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI32(int v) { 106257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 107baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addI32(v); 108baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 109baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 11045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(4); 11145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 11245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 11345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 11445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 11545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 11645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 11745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI64(long v) { 118257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 119baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addI64(v); 120baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 121baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 12245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(8); 12345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 12445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 12545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 12645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 12745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 12845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 12945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 13045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 13145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 13245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 13345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU8(short v) { 134257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 135baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addU8(v); 136baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 137baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 13845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((v < 0) || (v > 0xff)) { 13945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 14045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 14145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)v; 14245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 14345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 14445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU16(int v) { 145257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 146baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addU16(v); 147baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 148baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 14945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((v < 0) || (v > 0xffff)) { 15045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams android.util.Log.e("rs", "FieldPacker.addU16( " + v + " )"); 15145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 15245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 15345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(2); 15445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 15545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v >> 8); 15645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 15745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 15845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU32(long v) { 159257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 160baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addU32(v); 161baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 162baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 16345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if ((v < 0) || (v > 0xffffffffL)) { 16445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams android.util.Log.e("rs", "FieldPacker.addU32( " + v + " )"); 16545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 16645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 16745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(4); 16845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 16945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 17045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 17145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 17245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 17345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 17445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU64(long v) { 175257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 176baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addU64(v); 177baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 178baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 17945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if (v < 0) { 18045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams android.util.Log.e("rs", "FieldPacker.addU64( " + v + " )"); 18145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 18245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 18345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams align(8); 18445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)(v & 0xff); 18545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 18645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 18745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 18845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 18945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 19045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 19145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 19245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 19345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 19445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF32(float v) { 195257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 196baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addF32(v); 197baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 198baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 19945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(Float.floatToRawIntBits(v)); 20045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 20145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 20245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF64(double v) { 203257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 204baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addF64(v); 205baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 206baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 20745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(Double.doubleToRawLongBits(v)); 20845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 20945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 21045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addObj(BaseObj obj) { 211257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2129cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addObj(obj); 213baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 214baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 21545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams if (obj != null) { 21645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(obj.getID(null)); 21745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } else { 21845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(0); 21945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 22045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 22145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 22245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF32(Float2 v) { 223257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2249cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF32(v); 225baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 226baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 22745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.x); 22845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.y); 22945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 23045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF32(Float3 v) { 231257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2329cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF32(v); 233baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 234baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 23545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.x); 23645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.y); 23745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.z); 23845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 23945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF32(Float4 v) { 240257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2419cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF32(v); 242baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 243baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 24445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.x); 24545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.y); 24645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.z); 24745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.w); 24845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 24945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 25045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF64(Double2 v) { 251257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2529cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF64(v); 253baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 254baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 25545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.x); 25645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.y); 25745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 25845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF64(Double3 v) { 259257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2609cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF64(v); 261baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 262baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 26345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.x); 26445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.y); 26545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.z); 26645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 26745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addF64(Double4 v) { 268257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2699cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addF64(v); 270baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 271baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 27245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.x); 27345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.y); 27445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.z); 27545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF64(v.w); 27645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 27745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 27845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI8(Byte2 v) { 279257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2809cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI8(v); 281baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 282baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 28345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.x); 28445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.y); 28545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 28645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI8(Byte3 v) { 287257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2889cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI8(v); 289baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 290baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 29145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.x); 29245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.y); 29345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.z); 29445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 29545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI8(Byte4 v) { 296257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 2979cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI8(v); 298baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 299baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 30045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.x); 30145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.y); 30245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.z); 30345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8(v.w); 30445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 30545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 30645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU8(Short2 v) { 307257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3089cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU8(v); 309baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 310baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 31145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.x); 31245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.y); 31345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 31445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU8(Short3 v) { 315257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3169cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU8(v); 317baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 318baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 31945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.x); 32045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.y); 32145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.z); 32245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 32345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU8(Short4 v) { 324257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3259cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU8(v); 326baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 327baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 32845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.x); 32945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.y); 33045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.z); 33145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU8(v.w); 33245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 33345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 33445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI16(Short2 v) { 335257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3369cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI16(v); 337baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 338baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 33945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.x); 34045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.y); 34145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 34245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI16(Short3 v) { 343257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3449cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI16(v); 345baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 346baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 34745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.x); 34845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.y); 34945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.z); 35045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 35145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI16(Short4 v) { 352257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3539cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI16(v); 354baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 355baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 35645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.x); 35745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.y); 35845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.z); 35945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI16(v.w); 36045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 36145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 36245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU16(Int2 v) { 363257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3649cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU16(v); 365baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 366baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 36745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.x); 36845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.y); 36945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 37045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU16(Int3 v) { 371257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3729cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU16(v); 373baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 374baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 37545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.x); 37645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.y); 37745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.z); 37845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 37945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU16(Int4 v) { 380257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3819cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU16(v); 382baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 383baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 38445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.x); 38545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.y); 38645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.z); 38745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU16(v.w); 38845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 38945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 39045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI32(Int2 v) { 391257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 3929cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI32(v); 393baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 394baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 39545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.x); 39645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.y); 39745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 39845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI32(Int3 v) { 399257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4009cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI32(v); 401baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 402baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 40345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.x); 40445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.y); 40545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.z); 40645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 40745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI32(Int4 v) { 408257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4099cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI32(v); 410baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 411baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 41245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.x); 41345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.y); 41445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.z); 41545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI32(v.w); 41645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 41745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 41845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU32(Long2 v) { 419257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4209cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU32(v); 421baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 422baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 42345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.x); 42445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.y); 42545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 42645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU32(Long3 v) { 427257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4289cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU32(v); 429baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 430baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 43145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.x); 43245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.y); 43345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.z); 43445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 43545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU32(Long4 v) { 436257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4379cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU32(v); 438baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 439baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 44045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.x); 44145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.y); 44245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.z); 44345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU32(v.w); 44445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 44545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 44645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI64(Long2 v) { 447257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4489cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI64(v); 449baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 450baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 45145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.x); 45245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.y); 45345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 45445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI64(Long3 v) { 455257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4569cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI64(v); 457baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 458baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 45945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.x); 46045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.y); 46145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.z); 46245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 46345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addI64(Long4 v) { 464257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4659cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addI64(v); 466baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 467baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 46845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.x); 46945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.y); 47045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.z); 47145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI64(v.w); 47245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 47345d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 47445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU64(Long2 v) { 475257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4769cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU64(v); 477baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 478baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 47945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.x); 48045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.y); 48145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 48245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU64(Long3 v) { 483257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4849cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU64(v); 485baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 486baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 48745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.x); 48845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.y); 48945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.z); 49045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 49145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addU64(Long4 v) { 492257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 4939cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addU64(v); 494baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 495baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 49645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.x); 49745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.y); 49845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.z); 49945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addU64(v.w); 50045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 50145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 50245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addMatrix(Matrix4f v) { 503257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 5049cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addMatrix(v); 505baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 506baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 50745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams for (int i=0; i < v.mMat.length; i++) { 50845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.mMat[i]); 50945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 51045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 51145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 51245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addMatrix(Matrix3f v) { 513257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 5149cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addMatrix(v); 515baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 516baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 51745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams for (int i=0; i < v.mMat.length; i++) { 51845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.mMat[i]); 51945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 52045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 52145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 52245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addMatrix(Matrix2f v) { 523257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 5249cc2e8df196039de183aa1e1cc0ff443b474154dTim Murray mN.addMatrix(v); 525baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 526baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 52745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams for (int i=0; i < v.mMat.length; i++) { 52845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addF32(v.mMat[i]); 52945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 53045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 53145d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 53245d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public void addBoolean(boolean v) { 533257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 534baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray mN.addBoolean(v); 535baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return; 536baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 53745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams addI8((byte)(v ? 1 : 0)); 53845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 53945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 54045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams public final byte[] getData() { 541257cecb5e24c9af71ba4d621887e88e46b0ac411Stephen Hines if (RenderScript.shouldThunk()) { 542baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray return mN.getData(); 543baf4b4a16ff2ab85653438b93db9af03d4375f2dTim Murray } 54445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams return mData; 54545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams } 54645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 547908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines public int getPos() { 548908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines if (RenderScript.shouldThunk()) { 549908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines return mN.getPos(); 550908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines } 551908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines return mPos; 552908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines } 553908f238ae73283a7f3d49ddf7a562ccbd1a9ac44Stephen Hines 55445d443665f5ce7efa934706a89883f0cc87f3513Jason Sams private final byte mData[]; 55545d443665f5ce7efa934706a89883f0cc87f3513Jason Sams private int mPos; 55645d443665f5ce7efa934706a89883f0cc87f3513Jason Sams private int mLen; 55745d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 55845d443665f5ce7efa934706a89883f0cc87f3513Jason Sams} 55945d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 56045d443665f5ce7efa934706a89883f0cc87f3513Jason Sams 561