Loading libs/rs/java/Film/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package="com.android.film"> <application android:label="Film"> <activity android:name="Film" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> Loading libs/rs/java/Film/res/raw/filmstrip.c +36 −47 Original line number Diff line number Diff line Loading @@ -2,8 +2,8 @@ #pragma version(1) #pragma stateVertex(PV) #pragma stateFragment(default) #pragma stateFragmentStore(default) #pragma stateFragment(PFBackground) #pragma stateFragmentStore(PFSBackground) /* typedef struct FilmScriptUserEnvRec { Loading @@ -19,66 +19,54 @@ typedef struct FilmScriptUserEnvRec { // bank1: (r) The position information // bank2: (rw) The temporary texture state int main(void* con, int ft, int index) int main(int index) { int f1; int f2; int f3; int f4; int f5; int f6; int f7; int f8; int f9; int f10; int f11; int f12; int f13; int f14; int f15; int f16; int f1,f2,f3,f4, f5,f6,f7,f8, f9,f10,f11,f12, f13,f14,f15,f16; int g1,g2,g3,g4, g5,g6,g7,g8, g9,g10,g11,g12, g13,g14,g15,g16; int float_1; int float_0; int float_2; int float_90; int float_0_5; int trans; // float int rot; // float int x; float_2 = intToFloat(2); float_1 = intToFloat(1); float_0 = intToFloat(0); float_90= intToFloat(90); float_0_5 = fixedtoFloat(0x8000); //trans = loadEnvF(con, 1, 0); //rot = loadEnvF(con, 1, 1); //matrixLoadTranslate(con, &f1, 0, 0, trans); //matrixRotate(con, &f1, rot, 1, 0, 0); //matrixScale(con, &f1, 3.0f, 3.0f, 3.0f); //storeEnvMatrix(con, 3, RS_PROGRAM_VERTEX_MODELVIEW_OFFSET, &f1); trans = loadF(1, 0); rot = loadF(1, 1); //rsc_Matrix m; //int imgId = 0; // This should be replaced in the compiler with a // smart load of a structure. //const FilmScriptUserEnv *env = loadEnvVp(con, 0,0); matrixLoadScale(&f16, float_2, float_2, float_2); matrixTranslate(&f16, 0, 0, trans); matrixRotate(&f16, float_90, 0, 0, float_1); matrixRotate(&f16, rot, float_1, 0, 0); storeEnvMatrix(3, 0, &f16); //materialDiffuse(con, 0.0f, 0.0f, 0.0f, 1.0f); //materialSpecular(con, 0.5f, 0.5f, 0.5f, 0.5f); //materialShininess(con, 20.0f); //materialShininess(intToFloat(20)); //lightPosition(con, 0.2f, -0.2f, -2.0f, 0.0f); //enable(con, GL_LIGHTING); renderTriangleMesh(NAMED_mesh); //lightPosition(con, 0.2f, -0.2f, -2.0f, 0.0f); //contextBindProgramFragmentStore(con, NAMED_PFSBackground); //contextBindProgramFragment(con, NAMED_PFBackground); //enable(con, GL_LIGHTING); renderTriangleMesh(con, NAMED_mesh); //int imgId = 0; /* contextBindProgramFragmentStore(con, env->fsImages); contextBindProgramFragment(con, env->fpImages); disable(con, GL_LIGHTING); contextBindProgramFragmentStore(env->fsImages); contextBindProgramFragment(env->fpImages); disable(GL_LIGHTING); float focusPos = loadEnvF(con, 1, 2); int32_t focusID = 0; int32_t lastFocusID = loadEnvI32(con, 2, 0); int32_t imgCount = 13; float focusPos = loadEnvF(1, 2); int focusID = 0; int lastFocusID = loadEnvI32(2, 0); int imgCount = 13; if (trans > (-.3)) { focusID = -1.0 - focusPos; Loading Loading @@ -127,5 +115,6 @@ int main(void* con, int ft, int index) renderTriangleMeshRange(con, env->mesh, env->triangleOffsets[start], env->triangleOffsets[end] - env->triangleOffsets[start]); } */ return 0; } libs/rs/java/Film/src/com/android/film/FilmRS.java +10 −23 Original line number Diff line number Diff line Loading @@ -51,18 +51,17 @@ public class FilmRS { public void setFilmStripPosition(int x, int y) { if (x < 0) { x = 0; } if (x > 50) { if (x < 50) { x = 50; } if (x > 270) { x = 270; } float anim = ((float)x) / 50.f; mBufferPos[0] = -2f * anim - .2f; // translation mBufferPos[1] = -90 + (anim * 40); // rotation float anim = ((float)x-50) / 270.f; mBufferPos[0] = 2f * anim + 0.5f; // translation mBufferPos[1] = (anim * 40); // rotation mBufferPos[2] = ((float)y) / 16.f - 8; // focusPos mAllocPos.data(mBufferPos); } Loading Loading @@ -166,26 +165,12 @@ public class FilmRS { mAllocPos = mRS.allocationCreatePredefSized( RenderScript.ElementPredefined.USER_FLOAT, mBufferPos.length); setFilmStripPosition(0, 0); mPVA = new ProgramVertexAlloc(mRS); mPV.bindAllocation(0, mPVA.mAlloc); mPVA.setupProjectionNormalized(320, 480); Matrix m = new Matrix(); m.loadIdentity(); m.translate(0, 0, 1); m.rotate(90, 0, 0, 1); m.rotate(20, 1, 0, 0); mPVA.loadModelview(m); //mScriptStrip.bindAllocation(mEnvAlloc, 0); mScriptStrip.bindAllocation(mAllocPos, 1); //mScriptStrip.bindAllocation(gStateAlloc, 2); mScriptStrip.bindAllocation(mPVA.mAlloc, 3); Loading Loading @@ -234,6 +219,8 @@ public class FilmRS { mPartAlloc.data(t2); */ setFilmStripPosition(0, 0); mRS.contextBindRootScript(mScriptStrip); } } Loading libs/rs/java/Film/src/com/android/film/FilmView.java +1 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ public class FilmView extends RSSurfaceView { if (act == ev.ACTION_UP) { ret = false; } //mRender.newTouchPosition((int)ev.getX(), (int)ev.getY()); mRender.setFilmStripPosition((int)ev.getX(), (int)ev.getY()); return ret; } } Loading libs/rs/rsScriptC.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,16 @@ ScriptC::~ScriptC() } } extern "C" float fixedToFloat(int32_t f) { return ((float)f) / 0x10000; } extern "C" float intToFloat(int32_t f) { return (float)f; } extern "C" void matrixLoadIdentity(rsc_Matrix *mat) { Matrix *m = reinterpret_cast<Matrix *>(mat); Loading Loading
libs/rs/java/Film/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package="com.android.film"> <application android:label="Film"> <activity android:name="Film" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> Loading
libs/rs/java/Film/res/raw/filmstrip.c +36 −47 Original line number Diff line number Diff line Loading @@ -2,8 +2,8 @@ #pragma version(1) #pragma stateVertex(PV) #pragma stateFragment(default) #pragma stateFragmentStore(default) #pragma stateFragment(PFBackground) #pragma stateFragmentStore(PFSBackground) /* typedef struct FilmScriptUserEnvRec { Loading @@ -19,66 +19,54 @@ typedef struct FilmScriptUserEnvRec { // bank1: (r) The position information // bank2: (rw) The temporary texture state int main(void* con, int ft, int index) int main(int index) { int f1; int f2; int f3; int f4; int f5; int f6; int f7; int f8; int f9; int f10; int f11; int f12; int f13; int f14; int f15; int f16; int f1,f2,f3,f4, f5,f6,f7,f8, f9,f10,f11,f12, f13,f14,f15,f16; int g1,g2,g3,g4, g5,g6,g7,g8, g9,g10,g11,g12, g13,g14,g15,g16; int float_1; int float_0; int float_2; int float_90; int float_0_5; int trans; // float int rot; // float int x; float_2 = intToFloat(2); float_1 = intToFloat(1); float_0 = intToFloat(0); float_90= intToFloat(90); float_0_5 = fixedtoFloat(0x8000); //trans = loadEnvF(con, 1, 0); //rot = loadEnvF(con, 1, 1); //matrixLoadTranslate(con, &f1, 0, 0, trans); //matrixRotate(con, &f1, rot, 1, 0, 0); //matrixScale(con, &f1, 3.0f, 3.0f, 3.0f); //storeEnvMatrix(con, 3, RS_PROGRAM_VERTEX_MODELVIEW_OFFSET, &f1); trans = loadF(1, 0); rot = loadF(1, 1); //rsc_Matrix m; //int imgId = 0; // This should be replaced in the compiler with a // smart load of a structure. //const FilmScriptUserEnv *env = loadEnvVp(con, 0,0); matrixLoadScale(&f16, float_2, float_2, float_2); matrixTranslate(&f16, 0, 0, trans); matrixRotate(&f16, float_90, 0, 0, float_1); matrixRotate(&f16, rot, float_1, 0, 0); storeEnvMatrix(3, 0, &f16); //materialDiffuse(con, 0.0f, 0.0f, 0.0f, 1.0f); //materialSpecular(con, 0.5f, 0.5f, 0.5f, 0.5f); //materialShininess(con, 20.0f); //materialShininess(intToFloat(20)); //lightPosition(con, 0.2f, -0.2f, -2.0f, 0.0f); //enable(con, GL_LIGHTING); renderTriangleMesh(NAMED_mesh); //lightPosition(con, 0.2f, -0.2f, -2.0f, 0.0f); //contextBindProgramFragmentStore(con, NAMED_PFSBackground); //contextBindProgramFragment(con, NAMED_PFBackground); //enable(con, GL_LIGHTING); renderTriangleMesh(con, NAMED_mesh); //int imgId = 0; /* contextBindProgramFragmentStore(con, env->fsImages); contextBindProgramFragment(con, env->fpImages); disable(con, GL_LIGHTING); contextBindProgramFragmentStore(env->fsImages); contextBindProgramFragment(env->fpImages); disable(GL_LIGHTING); float focusPos = loadEnvF(con, 1, 2); int32_t focusID = 0; int32_t lastFocusID = loadEnvI32(con, 2, 0); int32_t imgCount = 13; float focusPos = loadEnvF(1, 2); int focusID = 0; int lastFocusID = loadEnvI32(2, 0); int imgCount = 13; if (trans > (-.3)) { focusID = -1.0 - focusPos; Loading Loading @@ -127,5 +115,6 @@ int main(void* con, int ft, int index) renderTriangleMeshRange(con, env->mesh, env->triangleOffsets[start], env->triangleOffsets[end] - env->triangleOffsets[start]); } */ return 0; }
libs/rs/java/Film/src/com/android/film/FilmRS.java +10 −23 Original line number Diff line number Diff line Loading @@ -51,18 +51,17 @@ public class FilmRS { public void setFilmStripPosition(int x, int y) { if (x < 0) { x = 0; } if (x > 50) { if (x < 50) { x = 50; } if (x > 270) { x = 270; } float anim = ((float)x) / 50.f; mBufferPos[0] = -2f * anim - .2f; // translation mBufferPos[1] = -90 + (anim * 40); // rotation float anim = ((float)x-50) / 270.f; mBufferPos[0] = 2f * anim + 0.5f; // translation mBufferPos[1] = (anim * 40); // rotation mBufferPos[2] = ((float)y) / 16.f - 8; // focusPos mAllocPos.data(mBufferPos); } Loading Loading @@ -166,26 +165,12 @@ public class FilmRS { mAllocPos = mRS.allocationCreatePredefSized( RenderScript.ElementPredefined.USER_FLOAT, mBufferPos.length); setFilmStripPosition(0, 0); mPVA = new ProgramVertexAlloc(mRS); mPV.bindAllocation(0, mPVA.mAlloc); mPVA.setupProjectionNormalized(320, 480); Matrix m = new Matrix(); m.loadIdentity(); m.translate(0, 0, 1); m.rotate(90, 0, 0, 1); m.rotate(20, 1, 0, 0); mPVA.loadModelview(m); //mScriptStrip.bindAllocation(mEnvAlloc, 0); mScriptStrip.bindAllocation(mAllocPos, 1); //mScriptStrip.bindAllocation(gStateAlloc, 2); mScriptStrip.bindAllocation(mPVA.mAlloc, 3); Loading Loading @@ -234,6 +219,8 @@ public class FilmRS { mPartAlloc.data(t2); */ setFilmStripPosition(0, 0); mRS.contextBindRootScript(mScriptStrip); } } Loading
libs/rs/java/Film/src/com/android/film/FilmView.java +1 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ public class FilmView extends RSSurfaceView { if (act == ev.ACTION_UP) { ret = false; } //mRender.newTouchPosition((int)ev.getX(), (int)ev.getY()); mRender.setFilmStripPosition((int)ev.getX(), (int)ev.getY()); return ret; } } Loading
libs/rs/rsScriptC.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,16 @@ ScriptC::~ScriptC() } } extern "C" float fixedToFloat(int32_t f) { return ((float)f) / 0x10000; } extern "C" float intToFloat(int32_t f) { return (float)f; } extern "C" void matrixLoadIdentity(rsc_Matrix *mat) { Matrix *m = reinterpret_cast<Matrix *>(mat); Loading