Home | History | Annotate | Download | only in P_reflection3264_divergent_support
      1 /*
      2  * Copyright (C) 2011-2014 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /*
     18  * This file is auto-generated. DO NOT MODIFY!
     19  * The source Renderscript file: reflection3264_divergent.rs
     20  */
     21 
     22 package foo;
     23 
     24 import android.support.v8.renderscript.*;
     25 import foo.reflection3264_divergentBitCode;
     26 
     27 /**
     28  * @hide
     29  */
     30 public class ScriptField_DivergentNest extends android.support.v8.renderscript.Script.FieldBase {
     31     static public class Item {
     32 
     33         int x;
     34         ScriptField_Divergent.Item d;
     35         int y;
     36 
     37         Item() {
     38             d = new ScriptField_Divergent.Item();
     39         }
     40 
     41     }
     42 
     43     private Item mItemArray[];
     44     private FieldPacker mIOBuffer;
     45     private static java.lang.ref.WeakReference<Element> mElementCache = new java.lang.ref.WeakReference<Element>(null);
     46     public static Element createElement(RenderScript rs) {
     47         Element.Builder eb = new Element.Builder(rs);
     48         eb.add(Element.I32(rs), "x");
     49         if (RenderScript.getPointerSize() == 8) {
     50             eb.add(Element.U32(rs), "#rs_padding_1");
     51         }
     52 
     53         eb.add(ScriptField_Divergent.createElement(rs), "d");
     54         eb.add(Element.I32(rs), "y");
     55         if (RenderScript.getPointerSize() == 8) {
     56             eb.add(Element.U32(rs), "#rs_padding_2");
     57         }
     58 
     59         return eb.create();
     60     }
     61 
     62     private  ScriptField_DivergentNest(RenderScript rs) {
     63         mItemArray = null;
     64         mIOBuffer = null;
     65         mElement = createElement(rs);
     66     }
     67 
     68     public  ScriptField_DivergentNest(RenderScript rs, int count) {
     69         mItemArray = null;
     70         mIOBuffer = null;
     71         mElement = createElement(rs);
     72         init(rs, count);
     73     }
     74 
     75     public  ScriptField_DivergentNest(RenderScript rs, int count, int usages) {
     76         mItemArray = null;
     77         mIOBuffer = null;
     78         mElement = createElement(rs);
     79         init(rs, count, usages);
     80     }
     81 
     82     public static ScriptField_DivergentNest create1D(RenderScript rs, int dimX, int usages) {
     83         ScriptField_DivergentNest obj = new ScriptField_DivergentNest(rs);
     84         obj.mAllocation = Allocation.createSized(rs, obj.mElement, dimX, usages);
     85         return obj;
     86     }
     87 
     88     public static ScriptField_DivergentNest create1D(RenderScript rs, int dimX) {
     89         return create1D(rs, dimX, Allocation.USAGE_SCRIPT);
     90     }
     91 
     92     public static ScriptField_DivergentNest create2D(RenderScript rs, int dimX, int dimY) {
     93         return create2D(rs, dimX, dimY, Allocation.USAGE_SCRIPT);
     94     }
     95 
     96     public static ScriptField_DivergentNest create2D(RenderScript rs, int dimX, int dimY, int usages) {
     97         ScriptField_DivergentNest obj = new ScriptField_DivergentNest(rs);
     98         Type.Builder b = new Type.Builder(rs, obj.mElement);
     99         b.setX(dimX);
    100         b.setY(dimY);
    101         Type t = b.create();
    102         obj.mAllocation = Allocation.createTyped(rs, t, usages);
    103         return obj;
    104     }
    105 
    106     public static Type.Builder createTypeBuilder(RenderScript rs) {
    107         Element e = createElement(rs);
    108         return new Type.Builder(rs, e);
    109     }
    110 
    111     public static ScriptField_DivergentNest createCustom(RenderScript rs, Type.Builder tb, int usages) {
    112         ScriptField_DivergentNest obj = new ScriptField_DivergentNest(rs);
    113         Type t = tb.create();
    114         if (t.getElement() != obj.mElement) {
    115             throw new RSIllegalArgumentException("Type.Builder did not match expected element type.");
    116         }
    117         obj.mAllocation = Allocation.createTyped(rs, t, usages);
    118         return obj;
    119     }
    120 
    121     private void copyToArrayLocal(Item i, FieldPacker fp) {
    122         fp.addI32(i.x);
    123         fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    124         fp.addI32(i.d.i);
    125         fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    126         fp.addObj(i.d.a);
    127         fp.addI32(i.d.j);
    128         fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    129         fp.addI32(i.y);
    130         fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    131     }
    132 
    133     private void copyToArray(Item i, int index) {
    134         if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */);
    135         mIOBuffer.reset(index * mElement.getBytesSize());
    136         copyToArrayLocal(i, mIOBuffer);
    137     }
    138 
    139     public synchronized void set(Item i, int index, boolean copyNow) {
    140         if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */];
    141         mItemArray[index] = i;
    142         if (copyNow)  {
    143             copyToArray(i, index);
    144             FieldPacker fp = new FieldPacker(mElement.getBytesSize());
    145             copyToArrayLocal(i, fp);
    146             mAllocation.setFromFieldPacker(index, fp);
    147         }
    148 
    149     }
    150 
    151     public synchronized Item get(int index) {
    152         if (mItemArray == null) return null;
    153         return mItemArray[index];
    154     }
    155 
    156     public synchronized void set_x(int index, int v, boolean copyNow) {
    157         if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */);
    158         if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */];
    159         if (mItemArray[index] == null) mItemArray[index] = new Item();
    160         mItemArray[index].x = v;
    161         if (copyNow)  {
    162             mIOBuffer.reset(index * mElement.getBytesSize());
    163             mIOBuffer.addI32(v);
    164             FieldPacker fp = new FieldPacker(4);
    165             fp.addI32(v);
    166             mAllocation.setFromFieldPacker(index, 0, fp);
    167         }
    168 
    169     }
    170 
    171     public synchronized void set_d(int index, ScriptField_Divergent.Item v, boolean copyNow) {
    172         if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */);
    173         if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */];
    174         if (mItemArray[index] == null) mItemArray[index] = new Item();
    175         mItemArray[index].d = v;
    176         if (copyNow)  {
    177             mIOBuffer.reset(index * mElement.getBytesSize() + ((RenderScript.getPointerSize() == 8) ? 8 : 4));
    178             mIOBuffer.addI32(v.i);
    179             mIOBuffer.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    180             mIOBuffer.addObj(v.a);
    181             mIOBuffer.addI32(v.j);
    182             mIOBuffer.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    183             FieldPacker fp = new FieldPacker((RenderScript.getPointerSize() == 8) ? 48 : 12);
    184             fp.addI32(v.i);
    185             fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    186             fp.addObj(v.a);
    187             fp.addI32(v.j);
    188             fp.skip((RenderScript.getPointerSize() == 8) ? 4 : 0);
    189             mAllocation.setFromFieldPacker(index, (RenderScript.getPointerSize() == 8) ? 2 : 1, fp);
    190         }
    191 
    192     }
    193 
    194     public synchronized void set_y(int index, int v, boolean copyNow) {
    195         if (mIOBuffer == null) mIOBuffer = new FieldPacker(mElement.getBytesSize() * getType().getX()/* count */);
    196         if (mItemArray == null) mItemArray = new Item[getType().getX() /* count */];
    197         if (mItemArray[index] == null) mItemArray[index] = new Item();
    198         mItemArray[index].y = v;
    199         if (copyNow)  {
    200             mIOBuffer.reset(index * mElement.getBytesSize() + ((RenderScript.getPointerSize() == 8) ? 56 : 16));
    201             mIOBuffer.addI32(v);
    202             FieldPacker fp = new FieldPacker(4);
    203             fp.addI32(v);
    204             mAllocation.setFromFieldPacker(index, (RenderScript.getPointerSize() == 8) ? 3 : 2, fp);
    205         }
    206 
    207     }
    208 
    209     public synchronized int get_x(int index) {
    210         if (mItemArray == null) return 0;
    211         return mItemArray[index].x;
    212     }
    213 
    214     public synchronized ScriptField_Divergent.Item get_d(int index) {
    215         if (mItemArray == null) return null;
    216         return mItemArray[index].d;
    217     }
    218 
    219     public synchronized int get_y(int index) {
    220         if (mItemArray == null) return 0;
    221         return mItemArray[index].y;
    222     }
    223 
    224     public synchronized void copyAll() {
    225         for (int ct = 0; ct < mItemArray.length; ct++) copyToArray(mItemArray[ct], ct);
    226         mAllocation.setFromFieldPacker(0, mIOBuffer);
    227     }
    228 
    229 }
    230 
    231