summaryrefslogtreecommitdiffstats
path: root/libs/rs/java/Balls
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-11-17 15:29:32 -0800
committerJason Sams <rjsams@android.com>2010-11-17 15:29:32 -0800
commita17af04e62a3f40f729e7ebb8bd868d192e18405 (patch)
tree1cbd4b4e3fcb86d318b2825758fcf89733adf3e0 /libs/rs/java/Balls
parent81c4cea9ec4b08f8c06fdef86d51069adb739eb7 (diff)
downloadframeworks_base-a17af04e62a3f40f729e7ebb8bd868d192e18405.zip
frameworks_base-a17af04e62a3f40f729e7ebb8bd868d192e18405.tar.gz
frameworks_base-a17af04e62a3f40f729e7ebb8bd868d192e18405.tar.bz2
Create holder inner class for pushing context state.
Fix bug with rsForEach corrupting parent context state. Remove workaround from rsBalls. Change-Id: I43a948536e70d44645d1c2ef7b97e1c5906f6943
Diffstat (limited to 'libs/rs/java/Balls')
-rw-r--r--libs/rs/java/Balls/src/com/android/balls/BallsRS.java14
-rw-r--r--libs/rs/java/Balls/src/com/android/balls/balls.rs9
2 files changed, 4 insertions, 19 deletions
diff --git a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
index 359f334..76c23b7 100644
--- a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
+++ b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java
@@ -33,8 +33,6 @@ public class BallsRS {
private ProgramFragment mPFLines;
private ProgramFragment mPFPoints;
private ProgramVertex mPV;
- private ProgramRaster mPR;
- private ProgramStore mPS;
private ScriptField_Point mPoints;
private ScriptField_Point mArcs;
private ScriptField_VpConsts mVpConsts;
@@ -48,12 +46,6 @@ public class BallsRS {
mVpConsts.set(i, 0, true);
}
- private void createProgramRaster() {
- ProgramRaster.Builder b = new ProgramRaster.Builder(mRS);
- mPR = b.create();
- mScript.set_gPR(mPR);
- }
-
private void createProgramVertex() {
updateProjectionMatrices();
@@ -71,7 +63,7 @@ public class BallsRS {
sb.addInput(mPoints.getElement());
ProgramVertex pvs = sb.create();
pvs.bindConstants(mVpConsts.getAllocation(), 0);
- mScript.set_gPV(pvs);
+ mRS.contextBindProgramVertex(pvs);
}
private Allocation loadTexture(int id) {
@@ -125,10 +117,8 @@ public class BallsRS {
mScript.set_gPFLines(mPFLines);
mScript.set_gPFPoints(mPFPoints);
createProgramVertex();
- createProgramRaster();
- mPS = ProgramStore.BLEND_ADD_DEPTH_NO_DEPTH(mRS);
- mScript.set_gPS(mPS);
+ mRS.contextBindProgramStore(ProgramStore.BLEND_ADD_DEPTH_NO_DEPTH(mRS));
mPhysicsScript.set_gMinPos(new Float2(5, 5));
mPhysicsScript.set_gMaxPos(new Float2(width - 5, height - 5));
diff --git a/libs/rs/java/Balls/src/com/android/balls/balls.rs b/libs/rs/java/Balls/src/com/android/balls/balls.rs
index bbd03cf..3edbe2d 100644
--- a/libs/rs/java/Balls/src/com/android/balls/balls.rs
+++ b/libs/rs/java/Balls/src/com/android/balls/balls.rs
@@ -4,13 +4,11 @@
#include "balls.rsh"
-#pragma stateFragment(parent)
+#pragma stateVertex(parent)
+#pragma stateStore(parent)
rs_program_fragment gPFPoints;
rs_program_fragment gPFLines;
-rs_program_vertex gPV;
-rs_program_raster gPR;
-rs_program_store gPS;
rs_mesh partMesh;
rs_mesh arcMesh;
@@ -95,9 +93,6 @@ int root() {
frame++;
rsgBindProgramFragment(gPFLines);
- rsgBindProgramVertex(gPV);
- rsgBindProgramRaster(gPR);
- rsgBindProgramStore(gPS);
rsgDrawMesh(arcMesh, 0, 0, arcIdx);
rsgBindProgramFragment(gPFPoints);
rsgDrawMesh(partMesh);