198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams/* 298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Copyright (C) 2012 The Android Open Source Project 398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * 498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * you may not use this file except in compliance with the License. 698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * You may obtain a copy of the License at 798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * 898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * 1098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Unless required by applicable law or agreed to in writing, software 1198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 1298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * See the License for the specific language governing permissions and 1498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * limitations under the License. 1598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams */ 1698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 1798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samspackage android.support.v8.renderscript; 1898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 198b8070ded084da1f0a34f3ed2c54e501d2e56f6cTim Murrayimport android.os.SystemProperties; 200f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hinesimport android.support.v8.renderscript.RenderScript; 2198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 2298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams/** 2398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Utility class for packing arguments and structures from Android system objects to 247d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * RenderScript objects. 257d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * 267d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * This class is only intended to be used to support the 277d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * reflected code generated by the RS tool chain. It should not 287d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * be called directly. 2998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * 3098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams **/ 3198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samspublic class FieldPacker { 32ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray private android.renderscript.FieldPacker mN; 33ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 3498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public FieldPacker(int len) { 3598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = 0; 3698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mLen = len; 3798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData = new byte[len]; 380f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 39ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN = new android.renderscript.FieldPacker(len); 40ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 4198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 4298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 4398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void align(int v) { 440f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 45ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.align(v); 46ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 47ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 4898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v <= 0) || ((v & (v - 1)) != 0)) { 4998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("argument must be a non-negative non-zero power of 2: " + v); 5098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 5298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams while ((mPos & (v - 1)) != 0) { 5398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = 0; 5498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 5798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void reset() { 580f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 59ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.reset(); 60ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 61ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 6298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = 0; 6398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 6498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void reset(int i) { 650f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 66ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.reset(i); 67ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 68ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 6998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((i < 0) || (i >= mLen)) { 7098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 7198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 7298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = i; 7398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 7498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 7598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void skip(int i) { 760f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 77ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.skip(i); 78ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 79ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 8098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams int res = mPos + i; 8198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((res < 0) || (res > mLen)) { 8298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 8398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 8498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = res; 8598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 8698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 8798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(byte v) { 880f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 89ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI8(v); 90ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 91ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 9298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = v; 9398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 9498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 9598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(short v) { 960f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 97ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI16(v); 98ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 99ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 10098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(2); 10198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 10298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v >> 8); 10398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 10498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 10598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(int v) { 1060f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 107ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI32(v); 108ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 109ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 11098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(4); 11198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 11298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 11398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 11498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 11598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 11698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 11798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(long v) { 1180f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 119ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI64(v); 120ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 121ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 12298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(8); 12398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 12498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 12598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 12698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 12798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 12898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 12998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 13098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 13198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 13298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 13398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(short v) { 1340f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 135ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU8(v); 136ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 137ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 13898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xff)) { 13998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 14098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 14198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)v; 14298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 14398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 14498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(int v) { 1450f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 146ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU16(v); 147ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 148ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 14998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xffff)) { 15098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU16( " + v + " )"); 15198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 15298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 15398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(2); 15498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 15598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v >> 8); 15698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 15798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 15898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(long v) { 1590f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 160ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU32(v); 161ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 162ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 16398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xffffffffL)) { 16498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU32( " + v + " )"); 16598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 16698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 16798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(4); 16898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 16998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 17098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 17198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 17298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 17398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 17498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(long v) { 1750f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 176ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU64(v); 177ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 178ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 17998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if (v < 0) { 18098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU64( " + v + " )"); 18198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 18298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 18398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(8); 18498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 18598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 18698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 18798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 18898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 18998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 19098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 19198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 19298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 19398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 19498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(float v) { 1950f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 196ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF32(v); 197ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 198ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 19998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(Float.floatToRawIntBits(v)); 20098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 20198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 20298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(double v) { 2030f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 204ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF64(v); 205ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 206ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 20798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(Double.doubleToRawLongBits(v)); 20898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 20998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 21098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addObj(BaseObj obj) { 2110f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 212f54361ff127dd99157d2e53b1e73b77682fa8d13Jason Sams if (obj != null) { 213f54361ff127dd99157d2e53b1e73b77682fa8d13Jason Sams mN.addObj(obj.getNObj()); 214f54361ff127dd99157d2e53b1e73b77682fa8d13Jason Sams } else { 215f54361ff127dd99157d2e53b1e73b77682fa8d13Jason Sams mN.addObj(null); 216f54361ff127dd99157d2e53b1e73b77682fa8d13Jason Sams } 217ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 218ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 21998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if (obj != null) { 22098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(obj.getID(null)); 22198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } else { 22298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(0); 22398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 22498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 22598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 22698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float2 v) { 2270f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 228ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF32(new android.renderscript.Float2(v.x, v.y)); 229ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 230ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 23198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 23298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 23398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 23498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float3 v) { 2350f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 236ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF32(new android.renderscript.Float3(v.x, v.y, v.z)); 237ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 238ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 23998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 24098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 24198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.z); 24298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 24398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float4 v) { 2440f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 245ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF32(new android.renderscript.Float4(v.x, v.y, v.z, v.w)); 246ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 247ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 24898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 24998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 25098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.z); 25198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.w); 25298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 25398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 25498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double2 v) { 2550f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 256ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF64(new android.renderscript.Double2(v.x, v.y)); 257ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 258ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 25998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 26098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 26198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 26298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double3 v) { 2630f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 264ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF64(new android.renderscript.Double3(v.x, v.y, v.z)); 265ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 266ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 26798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 26898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 26998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.z); 27098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 27198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double4 v) { 2720f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 273ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF64(new android.renderscript.Double4(v.x, v.y, v.z, v.w)); 274ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 275ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 27698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 27798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 27898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.z); 27998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.w); 28098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 28198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 28298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte2 v) { 2830f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 284ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI8(new android.renderscript.Byte2(v.x, v.y)); 285ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 286ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 28798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 28898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 28998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 29098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte3 v) { 2910f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 292ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI8(new android.renderscript.Byte3(v.x, v.y, v.z)); 293ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 294ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 29598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 29698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 29798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.z); 29898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 29998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte4 v) { 3000f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 301ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI8(new android.renderscript.Byte4(v.x, v.y, v.z, v.w)); 302ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 303ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 30498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 30598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 30698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.z); 30798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.w); 30898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 30998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 31098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short2 v) { 3110f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 312ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU8(new android.renderscript.Short2(v.x, v.y)); 313ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 314ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 31598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 31698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 31798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 31898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short3 v) { 3190f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 320ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU8(new android.renderscript.Short3(v.x, v.y, v.z)); 321ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 322ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 32398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 32498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 32598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.z); 32698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 32798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short4 v) { 3280f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 329ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU8(new android.renderscript.Short4(v.x, v.y, v.z, v.w)); 330ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 331ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 33298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 33398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 33498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.z); 33598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.w); 33698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 33798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 33898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short2 v) { 3390f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 340ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI16(new android.renderscript.Short2(v.x, v.y)); 341ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 342ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 34398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 34498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 34598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 34698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short3 v) { 3470f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 348ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI16(new android.renderscript.Short3(v.x, v.y, v.z)); 349ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 350ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 35198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 35298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 35398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.z); 35498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 35598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short4 v) { 3560f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 357ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI16(new android.renderscript.Short4(v.x, v.y, v.z, v.w)); 358ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 359ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 36098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 36198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 36298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.z); 36398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.w); 36498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 36598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 36698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int2 v) { 3670f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 368ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU16(new android.renderscript.Int2(v.x, v.y)); 369ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 370ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 37198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 37298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 37398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 37498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int3 v) { 3750f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 376ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU16(new android.renderscript.Int3(v.x, v.y, v.z)); 377ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 378ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 37998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 38098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 38198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.z); 38298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 38398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int4 v) { 3840f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 385ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU16(new android.renderscript.Int4(v.x, v.y, v.z, v.w)); 386ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 387ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 38898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 38998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 39098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.z); 39198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.w); 39298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 39398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 39498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int2 v) { 3950f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 396ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI32(new android.renderscript.Int2(v.x, v.y)); 397ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 398ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 39998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 40098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 40198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 40298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int3 v) { 4030f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 404ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI32(new android.renderscript.Int3(v.x, v.y, v.z)); 405ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 406ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 40798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 40898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 40998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.z); 41098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 41198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int4 v) { 4120f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 413ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI32(new android.renderscript.Int4(v.x, v.y, v.z, v.w)); 414ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 415ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 41698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 41798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 41898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.z); 41998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.w); 42098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 42198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 42298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long2 v) { 4230f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 424ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU32(new android.renderscript.Long2(v.x, v.y)); 425ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 426ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 42798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 42898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 42998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 43098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long3 v) { 4310f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 432ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU32(new android.renderscript.Long3(v.x, v.y, v.z)); 433ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 434ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 43598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 43698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 43798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.z); 43898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 43998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long4 v) { 4400f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 441ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU32(new android.renderscript.Long4(v.x, v.y, v.z, v.w)); 442ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 443ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 44498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 44598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 44698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.z); 44798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.w); 44898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 44998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 45098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long2 v) { 4510f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 452ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI64(new android.renderscript.Long2(v.x, v.y)); 453ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 454ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 45598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 45698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 45798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 45898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long3 v) { 4590f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 460ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI64(new android.renderscript.Long3(v.x, v.y, v.z)); 461ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 462ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 46398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 46498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 46598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.z); 46698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 46798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long4 v) { 4680f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 469ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI64(new android.renderscript.Long4(v.x, v.y, v.z, v.w)); 470ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 471ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 47298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 47398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 47498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.z); 47598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.w); 47698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 47798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 47898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long2 v) { 4790f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 480ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU64(new android.renderscript.Long2(v.x, v.y)); 481ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 482ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 48398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 48498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 48598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 48698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long3 v) { 4870f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 488ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU64(new android.renderscript.Long3(v.x, v.y, v.z)); 489ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 490ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 49198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 49298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 49398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.z); 49498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 49598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long4 v) { 4960f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 497ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU64(new android.renderscript.Long4(v.x, v.y, v.z, v.w)); 498ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 499ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 50098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 50198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 50298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.z); 50398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.w); 50498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 50598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 50698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix4f v) { 5070f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 508ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addMatrix(new android.renderscript.Matrix4f(v.getArray())); 509ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 510ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 51198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 51298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 51398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 51498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 51598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 51698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix3f v) { 5170f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 518ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addMatrix(new android.renderscript.Matrix3f(v.getArray())); 519ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 520ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 52198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 52298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 52398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 52498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 52598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 52698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix2f v) { 5270f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 528ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addMatrix(new android.renderscript.Matrix2f(v.getArray())); 529ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 530ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 53198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 53298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 53398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 53498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 53598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 53698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addBoolean(boolean v) { 5370f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 538ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addBoolean(v); 539ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 540ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 54198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8((byte)(v ? 1 : 0)); 54298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 54398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 54498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public final byte[] getData() { 5450f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 546ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return mN.getData(); 547ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 54898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams return mData; 54998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 55098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 55198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private final byte mData[]; 55298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private int mPos; 55398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private int mLen; 55498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 55598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams} 55698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 55798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 558