1f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross/* 2f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * Copyright (C) 2011-2014 The Android Open Source Project 3f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * 4f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * Licensed under the Apache License, Version 2.0 (the "License"); 5f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * you may not use this file except in compliance with the License. 6f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * You may obtain a copy of the License at 7f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * 8f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * http://www.apache.org/licenses/LICENSE-2.0 9f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * 10f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * Unless required by applicable law or agreed to in writing, software 11f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * distributed under the License is distributed on an "AS IS" BASIS, 12f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * See the License for the specific language governing permissions and 14f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * limitations under the License. 15f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross */ 16f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 17f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross/* 18f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * This file is auto-generated. DO NOT MODIFY! 19f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * The source Renderscript file: struct_field.rs 20f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross */ 21f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 22f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Grosspackage struct_field; 23f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 24f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Grossimport android.renderscript.*; 25f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Grossimport struct_field.struct_fieldBitCode; 26f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 27f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross/** 28f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross * @hide 29f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross */ 30f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Grosspublic class ScriptField_Outer extends android.renderscript.Script.FieldBase { 31f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross static public class Item { 32f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 33f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerOne.Item innerOneA; 34f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross long l; 35f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerOne.Item innerOneB; 36f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerTwo.Item[] innerTwo3; 37f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerTwo.Item[] innerTwo2; 38f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerOne.Item[] innerOne4; 39f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_InnerOne.Item innerOneC; 40f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 41f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Item() { 42f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerOneA = new ScriptField_InnerOne.Item(); 43f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerOneB = new ScriptField_InnerOne.Item(); 44f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerTwo3 = new ScriptField_InnerTwo.Item[3]; 45f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int $ct = 0; $ct < 3; $ct++) { 46f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerTwo3[$ct] = new ScriptField_InnerTwo.Item(); 47f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 48f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 49f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerTwo2 = new ScriptField_InnerTwo.Item[2]; 50f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int $ct = 0; $ct < 2; $ct++) { 51f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerTwo2[$ct] = new ScriptField_InnerTwo.Item(); 52f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 53f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 54f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerOne4 = new ScriptField_InnerOne.Item[4]; 55f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int $ct = 0; $ct < 4; $ct++) { 56f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerOne4[$ct] = new ScriptField_InnerOne.Item(); 57f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 58f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 59f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross innerOneC = new ScriptField_InnerOne.Item(); 60f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 61f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 62f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 63f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 64f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private Item mItemArray[]; 65f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private FieldPacker mIOBuffer; 66f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private static java.lang.ref.WeakReference<Element> mElementCache = new java.lang.ref.WeakReference<Element>(null); 67f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static Element createElement(RenderScript rs) { 68f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Element.Builder eb = new Element.Builder(rs); 69f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerOne.createElement(rs), "innerOneA"); 70f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(Element.U32(rs), "#rs_padding_1"); 71f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(Element.I64(rs), "l"); 72f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerOne.createElement(rs), "innerOneB"); 73f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerTwo.createElement(rs), "innerTwo3", 3); 74f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerTwo.createElement(rs), "innerTwo2", 2); 75f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerOne.createElement(rs), "innerOne4", 4); 76f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross eb.add(ScriptField_InnerOne.createElement(rs), "innerOneC"); 77f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return eb.create(); 78f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 79f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 80f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private ScriptField_Outer(RenderScript rs) { 81f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray = null; 82f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer = null; 83f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mElement = createElement(rs); 84f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 85f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 86f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public ScriptField_Outer(RenderScript rs, int count) { 87f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray = null; 88f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer = null; 89f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mElement = createElement(rs); 90f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross init(rs, count); 91f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 92f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 93f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public ScriptField_Outer(RenderScript rs, int count, int usages) { 94f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray = null; 95f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer = null; 96f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mElement = createElement(rs); 97f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross init(rs, count, usages); 98f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 99f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 100f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static ScriptField_Outer create1D(RenderScript rs, int dimX, int usages) { 101f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_Outer obj = new ScriptField_Outer(rs); 102f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross obj.mAllocation = Allocation.createSized(rs, obj.mElement, dimX, usages); 103f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return obj; 104f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 105f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 106f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static ScriptField_Outer create1D(RenderScript rs, int dimX) { 107f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return create1D(rs, dimX, Allocation.USAGE_SCRIPT); 108f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 109f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 110f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static ScriptField_Outer create2D(RenderScript rs, int dimX, int dimY) { 111f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return create2D(rs, dimX, dimY, Allocation.USAGE_SCRIPT); 112f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 113f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 114f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static ScriptField_Outer create2D(RenderScript rs, int dimX, int dimY, int usages) { 115f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_Outer obj = new ScriptField_Outer(rs); 116f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Type.Builder b = new Type.Builder(rs, obj.mElement); 117f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross b.setX(dimX); 118f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross b.setY(dimY); 119f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Type t = b.create(); 120f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross obj.mAllocation = Allocation.createTyped(rs, t, usages); 121f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return obj; 122f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 123f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 124f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static Type.Builder createTypeBuilder(RenderScript rs) { 125f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Element e = createElement(rs); 126f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return new Type.Builder(rs, e); 127f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 128f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 129f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public static ScriptField_Outer createCustom(RenderScript rs, Type.Builder tb, int usages) { 130f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross ScriptField_Outer obj = new ScriptField_Outer(rs); 131f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Type t = tb.create(); 132f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (t.getElement() != obj.mElement) { 133f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross throw new RSIllegalArgumentException("Type.Builder did not match expected element type."); 134f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 135f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross obj.mAllocation = Allocation.createTyped(rs, t, usages); 136f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return obj; 137f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 138f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 139f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private void copyToArrayLocal(Item i, FieldPacker fp) { 140f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneA.x); 141f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneA.y); 142f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerOneA.f); 143f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.skip(4); 144f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI64(i.l); 145f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneB.x); 146f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneB.y); 147f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerOneB.f); 148f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct2 = 0; ct2 < 3; ct2++) { 149f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI8(i.innerTwo3[ct2].z); 150f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.skip(3); 151f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerTwo3[ct2].innerOne.x); 152f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerTwo3[ct2].innerOne.y); 153f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerTwo3[ct2].innerOne.f); 154f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 155f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 156f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct2 = 0; ct2 < 2; ct2++) { 157f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI8(i.innerTwo2[ct2].z); 158f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.skip(3); 159f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerTwo2[ct2].innerOne.x); 160f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerTwo2[ct2].innerOne.y); 161f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerTwo2[ct2].innerOne.f); 162f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 163f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 164f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct2 = 0; ct2 < 4; ct2++) { 165f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOne4[ct2].x); 166f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOne4[ct2].y); 167f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerOne4[ct2].f); 168f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 169f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 170f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneC.x); 171f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(i.innerOneC.y); 172f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(i.innerOneC.f); 173f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 174f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 175f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross private void copyToArray(Item i, int index) { 176f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 177f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize()); 178f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross copyToArrayLocal(i, mIOBuffer); 179f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 180f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 181f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set(Item i, int index, boolean copyNow) { 182f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 183f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index] = i; 184f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 185f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross copyToArray(i, index); 186f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(mElement.getBytesSize()); 187f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross copyToArrayLocal(i, fp); 188f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, fp); 189f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 190f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 191f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 192f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 193f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized Item get(int index) { 194f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 195f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index]; 196f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 197f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 198f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerOneA(int index, ScriptField_InnerOne.Item v, boolean copyNow) { 199f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 200f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 201f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 202f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerOneA = v; 203f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 204f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize()); 205f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.x); 206f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.y); 207f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v.f); 208f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(12); 209f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.x); 210f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.y); 211f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v.f); 212f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 0, fp); 213f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 214f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 215f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 216f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 217f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_l(int index, long v, boolean copyNow) { 218f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 219f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 220f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 221f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].l = v; 222f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 223f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 16); 224f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI64(v); 225f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(8); 226f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI64(v); 227f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 2, fp); 228f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 229f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 230f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 231f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 232f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerOneB(int index, ScriptField_InnerOne.Item v, boolean copyNow) { 233f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 234f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 235f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 236f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerOneB = v; 237f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 238f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 24); 239f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.x); 240f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.y); 241f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v.f); 242f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(12); 243f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.x); 244f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.y); 245f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v.f); 246f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 3, fp); 247f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 248f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 249f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 250f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 251f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerTwo3(int index, ScriptField_InnerTwo.Item[] v, boolean copyNow) { 252f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 253f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 254f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 255f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerTwo3 = v; 256f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 257f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 36); 258f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 3; ct1++) { 259f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI8(v[ct1].z); 260f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.skip(3); 261f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].innerOne.x); 262f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].innerOne.y); 263f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v[ct1].innerOne.f); 264f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 265f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 266f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(48); 267f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 3; ct1++) { 268f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI8(v[ct1].z); 269f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.skip(3); 270f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].innerOne.x); 271f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].innerOne.y); 272f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v[ct1].innerOne.f); 273f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 274f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 275f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 4, fp); 276f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 277f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 278f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 279f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 280f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerTwo2(int index, ScriptField_InnerTwo.Item[] v, boolean copyNow) { 281f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 282f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 283f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 284f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerTwo2 = v; 285f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 286f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 84); 287f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 2; ct1++) { 288f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI8(v[ct1].z); 289f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.skip(3); 290f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].innerOne.x); 291f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].innerOne.y); 292f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v[ct1].innerOne.f); 293f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 294f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 295f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(32); 296f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 2; ct1++) { 297f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI8(v[ct1].z); 298f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.skip(3); 299f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].innerOne.x); 300f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].innerOne.y); 301f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v[ct1].innerOne.f); 302f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 303f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 304f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 5, fp); 305f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 306f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 307f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 308f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 309f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerOne4(int index, ScriptField_InnerOne.Item[] v, boolean copyNow) { 310f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 311f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 312f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 313f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerOne4 = v; 314f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 315f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 116); 316f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 4; ct1++) { 317f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].x); 318f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v[ct1].y); 319f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v[ct1].f); 320f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 321f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 322f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(48); 323f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct1 = 0; ct1 < 4; ct1++) { 324f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].x); 325f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v[ct1].y); 326f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v[ct1].f); 327f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 328f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 329f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 6, fp); 330f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 331f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 332f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 333f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 334f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void set_innerOneC(int index, ScriptField_InnerOne.Item v, boolean copyNow) { 335f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 336f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */]; 337f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray[index] == null) mItemArray[index] = new Item(); 338f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray[index].innerOneC = v; 339f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (copyNow) { 340f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.reset(index * mElement.getBytesSize() + 164); 341f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.x); 342f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addI32(v.y); 343f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mIOBuffer.addF32(v.f); 344f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross FieldPacker fp = new FieldPacker(12); 345f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.x); 346f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addI32(v.y); 347f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross fp.addF32(v.f); 348f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(index, 7, fp); 349f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 350f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 351f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 352f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 353f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerOne.Item get_innerOneA(int index) { 354f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 355f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerOneA; 356f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 357f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 358f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized long get_l(int index) { 359f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return 0; 360f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].l; 361f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 362f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 363f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerOne.Item get_innerOneB(int index) { 364f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 365f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerOneB; 366f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 367f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 368f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerTwo.Item[] get_innerTwo3(int index) { 369f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 370f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerTwo3; 371f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 372f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 373f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerTwo.Item[] get_innerTwo2(int index) { 374f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 375f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerTwo2; 376f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 377f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 378f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerOne.Item[] get_innerOne4(int index) { 379f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 380f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerOne4; 381f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 382f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 383f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized ScriptField_InnerOne.Item get_innerOneC(int index) { 384f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray == null) return null; 385f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross return mItemArray[index].innerOneC; 386f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 387f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 388f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void copyAll() { 389f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross for (int ct = 0; ct < mItemArray.length; ct++) copyToArray(mItemArray[ct], ct); 390f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.setFromFieldPacker(0, mIOBuffer); 391f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 392f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 393f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross public synchronized void resize(int newSize) { 394f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mItemArray != null) { 395f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross int oldSize = mItemArray.length; 396f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross int copySize = Math.min(oldSize, newSize); 397f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (newSize == oldSize) return; 398f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross Item ni[] = new Item[newSize]; 399f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross System.arraycopy(mItemArray, 0, ni, 0, copySize); 400f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mItemArray = ni; 401f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 402f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 403f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross mAllocation.resize(newSize); 404f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross if (mIOBuffer != null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */); 405f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross } 406f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 407f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross} 408f3edb0046f0c1389f1318f8e7d4ea3ab9453d599David Gross 409