diff options
author | Jason Sams <rjsams@android.com> | 2010-05-11 14:02:43 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-05-11 14:02:43 -0700 |
commit | 14f67edd3fd39137df072d66a6fb33a148786545 (patch) | |
tree | 3fd28bc549a2967a9386300b8c68c9ccd93769c6 /src/com/android/launcher2/ScriptField_VpConsts.java | |
parent | cfb390545f77ab59b1485e91dd21946742e37843 (diff) | |
download | android_packages_apps_Trebuchet-14f67edd3fd39137df072d66a6fb33a148786545.tar.gz android_packages_apps_Trebuchet-14f67edd3fd39137df072d66a6fb33a148786545.tar.bz2 android_packages_apps_Trebuchet-14f67edd3fd39137df072d66a6fb33a148786545.zip |
Update Launcher2 to work with LLVM.
Change-Id: I992b812ec58d182e5df7ddad3ab8e7d9e7b88551
Diffstat (limited to 'src/com/android/launcher2/ScriptField_VpConsts.java')
-rw-r--r-- | src/com/android/launcher2/ScriptField_VpConsts.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/com/android/launcher2/ScriptField_VpConsts.java b/src/com/android/launcher2/ScriptField_VpConsts.java new file mode 100644 index 000000000..1df75f862 --- /dev/null +++ b/src/com/android/launcher2/ScriptField_VpConsts.java @@ -0,0 +1,73 @@ + +package com.android.launcher2; + +import android.content.res.Resources; +import android.renderscript.*; +import android.util.Log; + +public class ScriptField_VpConsts + extends android.renderscript.Script.FieldBase +{ + + static public class Item { + Item() { + Position = new Float4(); + ScaleOffset = new Float4(); + BendPos = new Float2(); + ImgSize = new Float2(); + } + + public static final int sizeof = (12*4); + + Float4 Position; + Float4 ScaleOffset; + Float2 BendPos; + Float2 ImgSize; + } + private Item mItemArray[]; + + + public ScriptField_VpConsts(RenderScript rs, int count) { + // Allocate a pack/unpack buffer + mIOBuffer = new FieldPacker(Item.sizeof * count); + mItemArray = new Item[count]; + + Element.Builder eb = new Element.Builder(rs); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 4), "Position"); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 4), "ScaleOffset"); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "BendPos"); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "ImgSize"); + mElement = eb.create(); + + init(rs, count); + } + + private void copyToArray(Item i, int index) { + mIOBuffer.reset(index * Item.sizeof); + mIOBuffer.addF32(i.Position); + mIOBuffer.addF32(i.ScaleOffset); + mIOBuffer.addF32(i.BendPos); + mIOBuffer.addF32(i.ImgSize); + } + + public void set(Item i, int index, boolean copyNow) { + mItemArray[index] = i; + if (copyNow) { + copyToArray(i, index); + mAllocation.subData1D(index * Item.sizeof, Item.sizeof, mIOBuffer.getData()); + } + } + + public void copyAll() { + for (int ct=0; ct < mItemArray.length; ct++) { + copyToArray(mItemArray[ct], ct); + } + mAllocation.data(mIOBuffer.getData()); + } + + + private FieldPacker mIOBuffer; + + +} + |