diff --git a/libs/rs/java/Fountain/res/raw/fountain.rs b/libs/rs/java/Fountain/res/raw/fountain.rs index 6ff4c5bbea90e..ef12d9accb8d2 100644 --- a/libs/rs/java/Fountain/res/raw/fountain.rs +++ b/libs/rs/java/Fountain/res/raw/fountain.rs @@ -40,7 +40,7 @@ int root() { return 1; } -void addParticles(int rate, float x, float y, int newColor) +void addParticles(int rate, float x, float y, bool newColor) { if (newColor) { partColor.x = rsRand(0.5f, 1.0f); diff --git a/libs/rs/java/Fountain/res/raw/fountain_bc.bc b/libs/rs/java/Fountain/res/raw/fountain_bc.bc index b2006873ff18a..ac6b7d4e5b0d0 100644 Binary files a/libs/rs/java/Fountain/res/raw/fountain_bc.bc and b/libs/rs/java/Fountain/res/raw/fountain_bc.bc differ diff --git a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java index 6f4737f789b40..ffe2fad97c3ab 100644 --- a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java +++ b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java @@ -51,7 +51,7 @@ public class FountainRS { boolean holdingColor = false; public void newTouchPosition(int x, int y, int rate) { if (rate > 0) { - mScript.invoke_addParticles(rate, x, y, !holdingColor ? 1 : 0); + mScript.invoke_addParticles(rate, x, y, !holdingColor); holdingColor = true; } else { holdingColor = false; diff --git a/libs/rs/java/Fountain/src/com/android/fountain/ScriptC_Fountain.java b/libs/rs/java/Fountain/src/com/android/fountain/ScriptC_Fountain.java index 2653f6b298b7f..a4c598be46e1e 100644 --- a/libs/rs/java/Fountain/src/com/android/fountain/ScriptC_Fountain.java +++ b/libs/rs/java/Fountain/src/com/android/fountain/ScriptC_Fountain.java @@ -50,12 +50,13 @@ public class ScriptC_Fountain extends ScriptC { } private final static int mExportFuncIdx_addParticles = 0; - public void invoke_addParticles(int rate, float x, float y, int newColor) { + public void invoke_addParticles(int rate, float x, float y, boolean newColor) { FieldPacker addParticles_fp = new FieldPacker(16); addParticles_fp.addI32(rate); addParticles_fp.addF32(x); addParticles_fp.addF32(y); - addParticles_fp.addI32(newColor); + addParticles_fp.addBoolean(newColor); + addParticles_fp.skip(3); invoke(mExportFuncIdx_addParticles, addParticles_fp); } diff --git a/libs/rs/java/Fountain/src/com/android/fountain/ScriptField_Point.java b/libs/rs/java/Fountain/src/com/android/fountain/ScriptField_Point.java index dee4e96f44fc2..d88f47b6b3a70 100644 --- a/libs/rs/java/Fountain/src/com/android/fountain/ScriptField_Point.java +++ b/libs/rs/java/Fountain/src/com/android/fountain/ScriptField_Point.java @@ -38,17 +38,18 @@ public class ScriptField_Point extends android.renderscript.Script.FieldBase { private Item mItemArray[]; private FieldPacker mIOBuffer; + public static Element createElement(RenderScript rs) { + Element.Builder eb = new Element.Builder(rs); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "delta"); + eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "position"); + eb.add(Element.createVector(rs, Element.DataType.UNSIGNED_8, 4), "color"); + return eb.create(); + } + public ScriptField_Point(RenderScript rs, int count) { mItemArray = null; mIOBuffer = null; - { - Element.Builder eb = new Element.Builder(rs); - eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "delta"); - eb.add(Element.createVector(rs, Element.DataType.FLOAT_32, 2), "position"); - eb.add(Element.createVector(rs, Element.DataType.UNSIGNED_8, 4), "color"); - mElement = eb.create(); - } - + mElement = createElement(rs); init(rs, count); } @@ -65,7 +66,7 @@ public class ScriptField_Point extends android.renderscript.Script.FieldBase { mItemArray[index] = i; if (copyNow) { copyToArray(i, index); - mAllocation.subData1D(index * Item.sizeof, Item.sizeof, mIOBuffer.getData()); + mAllocation.subData1D(index, 1, mIOBuffer.getData()); } }