1eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray/*
2eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * Copyright (C) 2012 The Android Open Source Project
3eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *
4eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * Licensed under the Apache License, Version 2.0 (the "License");
5eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * you may not use this file except in compliance with the License.
6eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * You may obtain a copy of the License at
7eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *
8eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *      http://www.apache.org/licenses/LICENSE-2.0
9eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *
10eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * Unless required by applicable law or agreed to in writing, software
11eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * distributed under the License is distributed on an "AS IS" BASIS,
12eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * See the License for the specific language governing permissions and
14eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * limitations under the License.
15eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray */
16eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
17eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murraypackage android.support.v8.renderscript;
18eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
19eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murrayimport android.support.v8.renderscript.RenderScript;
20eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
21eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray/**
22eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * Utility class for packing arguments and structures from Android system objects to
23eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * RenderScript objects.
24eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *
25eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * This class is only intended to be used to support the
26eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * reflected code generated by the RS tool chain.  It should not
27eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray * be called directly.
28eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray *
29eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray **/
30eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murraypublic class FieldPackerThunker {
31eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    private android.renderscript.FieldPacker mN;
3295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines    private int mPos;
33eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
34eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public FieldPackerThunker(int len) {
35eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN = new android.renderscript.FieldPacker(len);
3695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos = 0;
37eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
38eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
39eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    void align(int v) {
40eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.align(v);
4195730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        while ((mPos & (v - 1)) != 0) {
4295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines            mPos++;
4395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        }
44eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
45eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
46eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    void reset() {
47eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.reset();
4895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos = 0;
49eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
50eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
51eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    void reset(int i) {
52eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.reset(i);
5395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos = i;
54eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
55eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
56eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void skip(int i) {
57eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.skip(i);
5895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += i;
59eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
60eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
61eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI8(byte v) {
62eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI8(v);
6395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos++;
64eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
65eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
66eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI16(short v) {
67eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI16(v);
6895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 2;
69eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
70eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
71eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI32(int v) {
72eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI32(v);
7395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
74eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
75eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
76eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI64(long v) {
77eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI64(v);
7895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
79eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
80eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
81eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU8(short v) {
82eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU8(v);
8395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos++;
84eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
85eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
86eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU16(int v) {
87eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU16(v);
8895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 2;
89eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
90eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
91eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU32(long v) {
92eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU32(v);
9395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
94eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
95eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
96eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU64(long v) {
97eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU64(v);
9895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
99eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
100eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
101eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF32(float v) {
102eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF32(v);
10395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
104eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
105eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
106eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF64(double v) {
107eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF64(v);
10895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
109eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
110eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
111eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addObj(BaseObj obj) {
112eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        if (obj != null) {
113eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray            mN.addObj(obj.getNObj());
114eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        } else {
115eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray            mN.addObj(null);
116eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        }
11795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;  // Compat lib only works in 32-bit mode, so objects are 4 bytes.
118eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
119eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
120eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF32(Float2 v) {
121eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF32(new android.renderscript.Float2(v.x, v.y));
12295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
123eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
124eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF32(Float3 v) {
125eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF32(new android.renderscript.Float3(v.x, v.y, v.z));
12695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 12;
127eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
128eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF32(Float4 v) {
129eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF32(new android.renderscript.Float4(v.x, v.y, v.z, v.w));
13095730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
131eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
132eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
133eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF64(Double2 v) {
134eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF64(new android.renderscript.Double2(v.x, v.y));
13595730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
136eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
137eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF64(Double3 v) {
138eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF64(new android.renderscript.Double3(v.x, v.y, v.z));
13995730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 24;
140eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
141eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addF64(Double4 v) {
142eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addF64(new android.renderscript.Double4(v.x, v.y, v.z, v.w));
14395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 32;
144eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
145eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
146eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI8(Byte2 v) {
147eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI8(new android.renderscript.Byte2(v.x, v.y));
14895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 2;
149eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
150eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI8(Byte3 v) {
151eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI8(new android.renderscript.Byte3(v.x, v.y, v.z));
15295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 3;
153eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
154eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI8(Byte4 v) {
155eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI8(new android.renderscript.Byte4(v.x, v.y, v.z, v.w));
15695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
157eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
158eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
159eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU8(Short2 v) {
160eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU8(new android.renderscript.Short2(v.x, v.y));
16195730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 2;
162eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
163eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU8(Short3 v) {
164eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU8(new android.renderscript.Short3(v.x, v.y, v.z));
16595730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 3;
166eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
167eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU8(Short4 v) {
168eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU8(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
16995730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
170eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
171eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
172eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI16(Short2 v) {
173eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI16(new android.renderscript.Short2(v.x, v.y));
17495730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
175eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
176eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI16(Short3 v) {
177eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI16(new android.renderscript.Short3(v.x, v.y, v.z));
17895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 6;
179eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
180eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI16(Short4 v) {
181eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI16(new android.renderscript.Short4(v.x, v.y, v.z, v.w));
18295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
183eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
184eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
185eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU16(Int2 v) {
186eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU16(new android.renderscript.Int2(v.x, v.y));
18795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 4;
188eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
189eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU16(Int3 v) {
190eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU16(new android.renderscript.Int3(v.x, v.y, v.z));
19195730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 6;
192eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
193eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU16(Int4 v) {
194eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU16(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
19595730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
196eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
197eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
198eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI32(Int2 v) {
199eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI32(new android.renderscript.Int2(v.x, v.y));
20095730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
201eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
202eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI32(Int3 v) {
203eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI32(new android.renderscript.Int3(v.x, v.y, v.z));
20495730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 12;
205eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
206eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI32(Int4 v) {
207eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI32(new android.renderscript.Int4(v.x, v.y, v.z, v.w));
20895730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
209eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
210eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
211eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU32(Long2 v) {
212eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU32(new android.renderscript.Long2(v.x, v.y));
21395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 8;
214eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
215eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU32(Long3 v) {
216eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU32(new android.renderscript.Long3(v.x, v.y, v.z));
21795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 12;
218eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
219eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU32(Long4 v) {
220eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU32(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
22195730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
222eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
223eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
224eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI64(Long2 v) {
225eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI64(new android.renderscript.Long2(v.x, v.y));
22695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
227eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
228eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI64(Long3 v) {
229eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI64(new android.renderscript.Long3(v.x, v.y, v.z));
23095730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 24;
231eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
232eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addI64(Long4 v) {
233eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addI64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
23495730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 32;
235eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
236eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
237eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU64(Long2 v) {
238eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU64(new android.renderscript.Long2(v.x, v.y));
23995730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 16;
240eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
241eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU64(Long3 v) {
242eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU64(new android.renderscript.Long3(v.x, v.y, v.z));
24395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 24;
244eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
245eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addU64(Long4 v) {
246eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addU64(new android.renderscript.Long4(v.x, v.y, v.z, v.w));
24795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += 32;
248eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
249eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
250eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addMatrix(Matrix4f v) {
251eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addMatrix(new android.renderscript.Matrix4f(v.getArray()));
25295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += (4 * 4 * 4);
253eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
254eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
255eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addMatrix(Matrix3f v) {
256eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addMatrix(new android.renderscript.Matrix3f(v.getArray()));
25795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += (3 * 3 * 4);
258eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
259eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
260eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addMatrix(Matrix2f v) {
261eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addMatrix(new android.renderscript.Matrix2f(v.getArray()));
26295730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos += (2 * 2 * 4);
263eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
264eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
265eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public void addBoolean(boolean v) {
266eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        mN.addBoolean(v);
26795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        mPos++;
268eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
269eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
270eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    public final byte[] getData() {
271eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray        return mN.getData();
272eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray    }
27395730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines
27495730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines    // We must compute our own mPos, since this API is not available in older target APIs.
27595730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines    public int getPos() {
27695730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines        return mPos;
27795730ed847182c0b424f87d14d4ce276496dfa66Stephen Hines    }
278eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray}
279eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
280eeb3042428fbe3a3cace554d3aca43b324904ad1Tim Murray
281