diff --git a/libs/rs/java/Fountain/res/raw/fountain.rs b/libs/rs/java/Fountain/res/raw/fountain.rs index c44a796a6a89e..4b56b1b925f3c 100644 --- a/libs/rs/java/Fountain/res/raw/fountain.rs +++ b/libs/rs/java/Fountain/res/raw/fountain.rs @@ -9,7 +9,7 @@ static int newPart = 0; -float4 partColor; +static float4 partColor; rs_mesh partMesh; typedef struct __attribute__((packed, aligned(4))) Point { @@ -44,22 +44,18 @@ int root() { #pragma rs export_func(addParticles) -void addParticles(int rate, int x, int y) +void addParticles(int rate, float x, float y, int newColor) { - //rsDebug("partColor", partColor); - //rsDebug("partColor x", partColor.x); - //rsDebug("partColor y", partColor.y); - //rsDebug("partColor z", partColor.z); - //rsDebug("partColor w", partColor.w); - + if (newColor) { + partColor.x = rsRand(0.5f, 1.0f); + partColor.y = rsRand(1.0f); + partColor.z = rsRand(1.0f); + } float rMax = ((float)rate) * 0.005f; int size = rsAllocationGetDimX(rsGetAllocation(point)); + uchar4 c = rsPackColorTo8888(partColor); - uchar4 c = rsPackColorTo8888(partColor.x, partColor.y, partColor.z); - - //rsDebug("color ", ((int *)&c)[0]); Point_t * np = &point[newPart]; - float2 p = {x, y}; while (rate--) { float angle = rsRand(3.14f * 2.f); diff --git a/libs/rs/java/Fountain/res/raw/fountain_bc.bc b/libs/rs/java/Fountain/res/raw/fountain_bc.bc index f90d8f1456e40..66d50b35a7bee 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 7a7866d2efeec..6f4737f789b40 100644 --- a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java +++ b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java @@ -48,18 +48,10 @@ public class FountainRS { mRS.contextBindRootScript(mScript); } - Float4 tmpColor = new Float4(); boolean holdingColor = false; - java.util.Random mRand = new java.util.Random(); public void newTouchPosition(int x, int y, int rate) { if (rate > 0) { - if (!holdingColor) { - tmpColor.x = mRand.nextFloat() * 0.5f + 0.5f; - tmpColor.y = mRand.nextFloat(); - tmpColor.z = mRand.nextFloat(); - mScript.set_partColor(tmpColor); - } - mScript.invoke_addParticles(rate, x, y); + mScript.invoke_addParticles(rate, x, y, !holdingColor ? 1 : 0); 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 88062e8c51bb6..66b5b98b89b41 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 @@ -63,11 +63,12 @@ public class ScriptC_Fountain extends ScriptC { } private final static int mExportFuncIdx_addParticles = 0; - public void invoke_addParticles(int rate, int x, int y) { - FieldPacker addParticles_fp = new FieldPacker(12); + public void invoke_addParticles(int rate, float x, float y, int newColor) { + FieldPacker addParticles_fp = new FieldPacker(16); addParticles_fp.addI32(rate); - addParticles_fp.addI32(x); - addParticles_fp.addI32(y); + addParticles_fp.addF32(x); + addParticles_fp.addF32(y); + addParticles_fp.addI32(newColor); invoke(mExportFuncIdx_addParticles, addParticles_fp); } diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp index f0de908799cdd..052e14471c3f0 100644 --- a/libs/rs/rsScriptC_LibGL.cpp +++ b/libs/rs/rsScriptC_LibGL.cpp @@ -345,8 +345,6 @@ static ScriptCState::SymbolTable_t gSyms[] = { { "rsgGetWidth", (void *)&SC_getWidth }, { "rsgGetHeight", (void *)&SC_getHeight }, - { "_Z18rsgUploadToTextureii", (void *)&SC_uploadToTexture2 }, - { "_Z18rsgUploadToTexturei", (void *)&SC_uploadToTexture }, { "_Z18rsgUploadToTexture13rs_allocationi", (void *)&SC_uploadToTexture2 }, { "_Z18rsgUploadToTexture13rs_allocation", (void *)&SC_uploadToTexture }, { "rsgUploadToBufferObject", (void *)&SC_uploadToBufferObject }, @@ -358,8 +356,6 @@ static ScriptCState::SymbolTable_t gSyms[] = { { "rsgDrawSpriteScreenspace", (void *)&SC_drawSpriteScreenspace }, { "_Z17rsgDrawSimpleMesh7rs_mesh", (void *)&SC_drawSimpleMesh }, { "_Z17rsgDrawSimpleMesh7rs_meshii", (void *)&SC_drawSimpleMeshRange }, - { "_Z17rsgDrawSimpleMeshi", (void *)&SC_drawSimpleMesh }, - { "_Z17rsgDrawSimpleMeshiii", (void *)&SC_drawSimpleMeshRange }, { "rsgClearColor", (void *)&SC_ClearColor }, { "rsgClearDepth", (void *)&SC_ClearDepth }, @@ -370,7 +366,6 @@ static ScriptCState::SymbolTable_t gSyms[] = { { "updateSimpleMesh", (void *)&SC_updateSimpleMesh }, // misc - //{ "pfClearColor", (void *)&SC_ClearColor }, { "color", (void *)&SC_color }, { NULL, NULL }