diff options
author | Jason Sams <rjsams@android.com> | 2009-08-13 12:59:04 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-13 12:59:04 -0700 |
commit | fbf0b9ecda03fbdbd4ebabfd18da09a789686249 (patch) | |
tree | 6c321ebb1d011aae9961ed7c046645028b05da86 /libs/rs/java/Film | |
parent | 1b52aae4d908fcf749e9a8d86bb0a33c70728c56 (diff) | |
download | frameworks_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.c | 8 | ||||
-rw-r--r-- | libs/rs/java/Film/src/com/android/film/FilmRS.java | 44 |
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(); |