summaryrefslogtreecommitdiffstats
path: root/libs/rs/java/Film
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-08-13 12:59:04 -0700
committerJason Sams <rjsams@android.com>2009-08-13 12:59:04 -0700
commitfbf0b9ecda03fbdbd4ebabfd18da09a789686249 (patch)
tree6c321ebb1d011aae9961ed7c046645028b05da86 /libs/rs/java/Film
parent1b52aae4d908fcf749e9a8d86bb0a33c70728c56 (diff)
downloadframeworks_base-fbf0b9ecda03fbdbd4ebabfd18da09a789686249.zip
frameworks_base-fbf0b9ecda03fbdbd4ebabfd18da09a789686249.tar.gz
frameworks_base-fbf0b9ecda03fbdbd4ebabfd18da09a789686249.tar.bz2
Implement named slots and convert script.addType to script.setType to remove ordering restrictions.
Diffstat (limited to 'libs/rs/java/Film')
-rw-r--r--libs/rs/java/Film/res/raw/filmstrip.c8
-rw-r--r--libs/rs/java/Film/src/com/android/film/FilmRS.java44
2 files changed, 23 insertions, 29 deletions
diff --git a/libs/rs/java/Film/res/raw/filmstrip.c b/libs/rs/java/Film/res/raw/filmstrip.c
index 4e7c37a..255d908 100644
--- a/libs/rs/java/Film/res/raw/filmstrip.c
+++ b/libs/rs/java/Film/res/raw/filmstrip.c
@@ -22,8 +22,8 @@ int main(int index)
{
float mat1[16];
- float trans = loadF(1, POS_TRANSLATE);
- float rot = loadF(1, POS_ROTATE);
+ float trans = Pos_translate;
+ float rot = Pos_rotate;
matrixLoadScale(mat1, 2.f, 2.f, 2.f);
matrixTranslate(mat1, 0.f, 0.f, trans);
matrixRotate(mat1, 90.f, 0.f, 0.f, 1.f);
@@ -39,7 +39,7 @@ int main(int index)
bindProgramFragment(NAMED_PFImages);
bindProgramVertex(NAMED_PVImages);
- float focusPos = loadF(1, POS_FOCUS);
+ float focusPos = Pos_focus;
int focusID = 0;
int lastFocusID = loadI32(2, STATE_LAST_FOCUS);
int imgCount = 13;
@@ -65,7 +65,7 @@ int main(int index)
*/
storeI32(2, STATE_LAST_FOCUS, focusID);
- int triangleOffsetsCount = loadI32(2, STATE_TRIANGLE_OFFSET_COUNT);
+ int triangleOffsetsCount = Pos_triangleOffsetCount;
int imgId = 0;
for (imgId=1; imgId <= imgCount; imgId++) {
diff --git a/libs/rs/java/Film/src/com/android/film/FilmRS.java b/libs/rs/java/Film/src/com/android/film/FilmRS.java
index 74f88c4..e6cd52d 100644
--- a/libs/rs/java/Film/src/com/android/film/FilmRS.java
+++ b/libs/rs/java/Film/src/com/android/film/FilmRS.java
@@ -23,25 +23,18 @@ import android.content.res.Resources;
import android.graphics.Bitmap;
import android.util.Log;
-import android.renderscript.Matrix;
-import android.renderscript.ProgramVertex;
-import android.renderscript.RenderScript;
-import android.renderscript.Element;
-import android.renderscript.Allocation;
-import android.renderscript.Dimension;
-import android.renderscript.ScriptC;
-import android.renderscript.Script;
-import android.renderscript.ProgramFragment;
-import android.renderscript.ProgramStore;
-import android.renderscript.Sampler;
-import android.renderscript.Light;
+import android.renderscript.*;
public class FilmRS {
- private final int POS_TRANSLATE = 0;
- private final int POS_ROTATE = 1;
- private final int POS_FOCUS = 2;
+ class StripPosition {
+ public float translate;
+ public float rotate;
+ public float focus;
+ public int triangleOffsetCount;
+ }
+ StripPosition mPos = new StripPosition();
+
- private final int STATE_TRIANGLE_OFFSET_COUNT = 0;
private final int STATE_LAST_FOCUS = 1;
public FilmRS() {
@@ -63,10 +56,11 @@ public class FilmRS {
}
float anim = ((float)x-50) / 270.f;
- mBufferPos[POS_TRANSLATE] = 2f * anim + 0.5f; // translation
- mBufferPos[POS_ROTATE] = (anim * 40); // rotation
- mBufferPos[POS_FOCUS] = ((float)y) / 16.f - 10.f; // focusPos
- mAllocPos.data(mBufferPos);
+ mPos.translate = 2f * anim + 0.5f; // translation
+ mPos.rotate = (anim * 40); // rotation
+ mPos.focus = ((float)y) / 16.f - 10.f; // focusPos
+ mPos.triangleOffsetCount = mFSM.mTriangleOffsetsCount;
+ mAllocPos.data(mPos);
}
@@ -84,6 +78,7 @@ public class FilmRS {
private ProgramVertex mPVBackground;
private ProgramVertex mPVImages;
private ProgramVertex.MatrixAllocation mPVA;
+ private Type mStripPositionType;
private Allocation mImages[];
private Allocation mAllocIDs;
@@ -204,10 +199,7 @@ public class FilmRS {
mBufferState = new int[10];
mAllocState = Allocation.createSized(mRS,
Element.USER_FLOAT, mBufferState.length);
-
- mBufferState[STATE_TRIANGLE_OFFSET_COUNT] = mFSM.mTriangleOffsetsCount;
mBufferState[STATE_LAST_FOCUS] = -1;
-
mAllocState.data(mBufferState);
}
@@ -227,14 +219,16 @@ public class FilmRS {
Log.e("rs", "Done loading named");
+ mStripPositionType = Type.createFromClass(mRS, StripPosition.class, 1);
+
ScriptC.Builder sb = new ScriptC.Builder(mRS);
sb.setScript(mRes, R.raw.filmstrip);
sb.setRoot(true);
+ sb.setType(mStripPositionType, "Pos", 1);
mScriptStrip = sb.create();
mScriptStrip.setClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- mAllocPos = Allocation.createSized(mRS,
- Element.USER_FLOAT, mBufferPos.length);
+ mAllocPos = Allocation.createTyped(mRS, mStripPositionType);
loadImages();
initState();