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 190f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hinesimport android.support.v8.renderscript.RenderScript; 2098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 2198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams/** 2298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Utility class for packing arguments and structures from Android system objects to 237d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * RenderScript objects. 247d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * 257d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * This class is only intended to be used to support the 267d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * reflected code generated by the RS tool chain. It should not 277d435ae5ba100be5710b685653cc351cab159c11Stephen Hines * be called directly. 2898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * 2998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams **/ 3098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samspublic class FieldPacker { 31eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray private FieldPackerThunker mN; 32ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray 3398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public FieldPacker(int len) { 3498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = 0; 3598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mLen = len; 3698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData = new byte[len]; 370f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 38eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN = new FieldPackerThunker(len); 39ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 4098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 4198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 4298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void align(int v) { 430f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 44ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.align(v); 45ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 46ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 4798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v <= 0) || ((v & (v - 1)) != 0)) { 4898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("argument must be a non-negative non-zero power of 2: " + v); 4998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 5198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams while ((mPos & (v - 1)) != 0) { 5298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = 0; 5398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 5598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 5698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void reset() { 570f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 58ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.reset(); 59ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 60ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 6198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = 0; 6298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 6398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void reset(int i) { 640f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 65ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.reset(i); 66ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 67ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 6898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((i < 0) || (i >= mLen)) { 6998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 7098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 7198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = i; 7298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 7398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 7498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void skip(int i) { 750f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 76ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.skip(i); 77ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 78ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 7998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams int res = mPos + i; 8098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((res < 0) || (res > mLen)) { 8198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new RSIllegalArgumentException("out of range argument: " + i); 8298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 8398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mPos = res; 8498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 8598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 8698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(byte v) { 870f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 88ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI8(v); 89ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 90ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 9198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = v; 9298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 9398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 9498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(short v) { 950f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 96ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI16(v); 97ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 98ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 9998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(2); 10098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 10198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v >> 8); 10298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 10398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 10498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(int v) { 1050f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 106ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI32(v); 107ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 108ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 10998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(4); 11098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 11198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 11298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 11398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 11498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 11598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 11698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(long v) { 1170f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 118ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addI64(v); 119ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 120ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 12198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(8); 12298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 12398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 12498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 12598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 12698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 12798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 12898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 12998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 13098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 13198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 13298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(short v) { 1330f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 134ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU8(v); 135ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 136ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 13798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xff)) { 13898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 13998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 14098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)v; 14198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 14298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 14398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(int v) { 1440f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 145ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU16(v); 146ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 147ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 14898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xffff)) { 14998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU16( " + v + " )"); 15098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 15198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 15298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(2); 15398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 15498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v >> 8); 15598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 15698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 15798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(long v) { 1580f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 159ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU32(v); 160ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 161ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 16298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if ((v < 0) || (v > 0xffffffffL)) { 16398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU32( " + v + " )"); 16498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 16598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 16698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(4); 16798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 16898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 16998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 17098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 17198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 17298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 17398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(long v) { 1740f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 175ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addU64(v); 176ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 177ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 17898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if (v < 0) { 17998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams android.util.Log.e("rs", "FieldPacker.addU64( " + v + " )"); 18098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams throw new IllegalArgumentException("Saving value out of range for type"); 18198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 18298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams align(8); 18398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)(v & 0xff); 18498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 8) & 0xff); 18598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 16) & 0xff); 18698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 24) & 0xff); 18798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 32) & 0xff); 18898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 40) & 0xff); 18998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 48) & 0xff); 19098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams mData[mPos++] = (byte)((v >> 56) & 0xff); 19198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 19298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 19398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(float v) { 1940f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 195ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF32(v); 196ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 197ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 19898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(Float.floatToRawIntBits(v)); 19998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 20098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 20198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(double v) { 2020f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 203ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addF64(v); 204ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 205ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 20698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(Double.doubleToRawLongBits(v)); 20798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 20898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 20998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addObj(BaseObj obj) { 2100f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 211eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addObj(obj); 212ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 213ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 21498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams if (obj != null) { 21598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(obj.getID(null)); 21698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } else { 21798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(0); 21898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 21998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 22098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 22198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float2 v) { 2220f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 223eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF32(v); 224ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 225ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 22698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 22798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 22898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 22998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float3 v) { 2300f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 231eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF32(v); 232ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 233ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 23498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 23598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 23698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.z); 23798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 23898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF32(Float4 v) { 2390f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 240eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF32(v); 241ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 242ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 24398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.x); 24498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.y); 24598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.z); 24698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.w); 24798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 24898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 24998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double2 v) { 2500f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 251eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF64(v); 252ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 253ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 25498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 25598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 25698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 25798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double3 v) { 2580f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 259eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF64(v); 260ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 261ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 26298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 26398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 26498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.z); 26598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 26698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addF64(Double4 v) { 2670f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 268eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addF64(v); 269ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 270ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 27198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.x); 27298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.y); 27398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.z); 27498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF64(v.w); 27598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 27698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 27798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte2 v) { 2780f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 279eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI8(v); 280ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 281ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 28298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 28398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 28498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 28598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte3 v) { 2860f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 287eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI8(v); 288ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 289ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 29098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 29198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 29298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.z); 29398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 29498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI8(Byte4 v) { 2950f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 296eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI8(v); 297ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 298ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 29998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.x); 30098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.y); 30198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.z); 30298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8(v.w); 30398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 30498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 30598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short2 v) { 3060f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 307eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU8(v); 308ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 309ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 31098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 31198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 31298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 31398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short3 v) { 3140f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 315eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU8(v); 316ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 317ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 31898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 31998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 32098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.z); 32198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 32298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU8(Short4 v) { 3230f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 324eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU8(v); 325ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 326ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 32798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.x); 32898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.y); 32998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.z); 33098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU8(v.w); 33198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 33298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 33398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short2 v) { 3340f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 335eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI16(v); 336ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 337ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 33898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 33998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 34098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 34198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short3 v) { 3420f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 343eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI16(v); 344ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 345ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 34698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 34798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 34898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.z); 34998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 35098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI16(Short4 v) { 3510f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 352eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI16(v); 353ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 354ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 35598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.x); 35698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.y); 35798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.z); 35898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI16(v.w); 35998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 36098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 36198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int2 v) { 3620f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 363eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU16(v); 364ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 365ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 36698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 36798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 36898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 36998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int3 v) { 3700f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 371eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU16(v); 372ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 373ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 37498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 37598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 37698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.z); 37798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 37898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU16(Int4 v) { 3790f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 380eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU16(v); 381ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 382ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 38398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.x); 38498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.y); 38598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.z); 38698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU16(v.w); 38798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 38898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 38998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int2 v) { 3900f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 391eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI32(v); 392ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 393ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 39498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 39598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 39698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 39798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int3 v) { 3980f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 399eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI32(v); 400ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 401ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 40298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 40398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 40498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.z); 40598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 40698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI32(Int4 v) { 4070f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 408eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI32(v); 409ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 410ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 41198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.x); 41298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.y); 41398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.z); 41498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI32(v.w); 41598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 41698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 41798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long2 v) { 4180f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 419eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU32(v); 420ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 421ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 42298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 42398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 42498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 42598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long3 v) { 4260f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 427eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU32(v); 428ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 429ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 43098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 43198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 43298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.z); 43398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 43498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU32(Long4 v) { 4350f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 436eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU32(v); 437ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 438ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 43998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.x); 44098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.y); 44198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.z); 44298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU32(v.w); 44398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 44498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 44598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long2 v) { 4460f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 447eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI64(v); 448ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 449ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 45098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 45198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 45298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 45398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long3 v) { 4540f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 455eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI64(v); 456ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 457ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 45898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 45998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 46098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.z); 46198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 46298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addI64(Long4 v) { 4630f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 464eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addI64(v); 465ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 466ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 46798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.x); 46898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.y); 46998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.z); 47098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI64(v.w); 47198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 47298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 47398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long2 v) { 4740f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 475eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU64(v); 476ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 477ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 47898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 47998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 48098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 48198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long3 v) { 4820f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 483eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU64(v); 484ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 485ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 48698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 48798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 48898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.z); 48998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 49098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addU64(Long4 v) { 4910f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 492eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addU64(v); 493ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 494ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 49598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.x); 49698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.y); 49798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.z); 49898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addU64(v.w); 49998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 50098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 50198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix4f v) { 5020f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 503eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addMatrix(v); 504ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 505ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 50698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 50798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 50898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 50998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 51098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 51198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix3f v) { 5120f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 513eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addMatrix(v); 514ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 515ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 51698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 51798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 51898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 51998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 52098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 52198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addMatrix(Matrix2f v) { 5220f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 523eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray mN.addMatrix(v); 524ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 525ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 52698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams for (int i=0; i < v.mMat.length; i++) { 52798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addF32(v.mMat[i]); 52898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 52998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 53098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 53198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public void addBoolean(boolean v) { 5320f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 533ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray mN.addBoolean(v); 534ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return; 535ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 53698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams addI8((byte)(v ? 1 : 0)); 53798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 53898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 53998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams public final byte[] getData() { 5400f5bae87e2e3e3b0e66803122b5c4c7dd36d43ddStephen Hines if (RenderScript.shouldThunk()) { 541ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray return mN.getData(); 542ce8b0e674c93035013d1c33aaabc9bb6ceffde0fTim Murray } 54398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams return mData; 54498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams } 54598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 54695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines public int getPos() { 54795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines if (RenderScript.shouldThunk()) { 54895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines return mN.getPos(); 54995730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines } 55095730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines return mPos; 55195730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines } 55295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines 55398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private final byte mData[]; 55498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private int mPos; 55598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams private int mLen; 55698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 55798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams} 55898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 55998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams 560