diff options
Diffstat (limited to 'libs/rs')
| -rw-r--r-- | libs/rs/java/Film/res/raw/filmimage.c | 2 | ||||
| -rw-r--r-- | libs/rs/java/Film/res/raw/filmstrip.c | 4 | ||||
| -rw-r--r-- | libs/rs/java/Fountain/res/raw/fountain.c | 3 | ||||
| -rw-r--r-- | libs/rs/java/Rollo/res/raw/rollo.c | 6 | ||||
| -rw-r--r-- | libs/rs/java/Rollo/res/raw/rollo2.c | 2 | ||||
| -rw-r--r-- | libs/rs/rsContext.cpp | 3 | ||||
| -rw-r--r-- | libs/rs/rsScript.h | 2 | ||||
| -rw-r--r-- | libs/rs/rsScriptC.cpp | 20 | ||||
| -rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 21 |
9 files changed, 49 insertions, 14 deletions
diff --git a/libs/rs/java/Film/res/raw/filmimage.c b/libs/rs/java/Film/res/raw/filmimage.c index 3bd94963931b..d154c68bfa00 100644 --- a/libs/rs/java/Film/res/raw/filmimage.c +++ b/libs/rs/java/Film/res/raw/filmimage.c @@ -4,7 +4,7 @@ #pragma stateVertex(orthoWindow) #pragma stateRaster(flat) #pragma stateFragment(PgmFragBackground) -#pragma stateFragmentStore(MyBlend) +#pragma stateStore(MyBlend) int main(void* con, int ft, int launchID) { diff --git a/libs/rs/java/Film/res/raw/filmstrip.c b/libs/rs/java/Film/res/raw/filmstrip.c index 8fbfee1c11fe..bf75675743a1 100644 --- a/libs/rs/java/Film/res/raw/filmstrip.c +++ b/libs/rs/java/Film/res/raw/filmstrip.c @@ -3,7 +3,7 @@ #pragma version(1) #pragma stateVertex(PVBackground) #pragma stateFragment(PFBackground) -#pragma stateFragmentStore(PSBackground) +#pragma stateStore(PSBackground) #define STATE_TRIANGLE_OFFSET_COUNT 0 #define STATE_LAST_FOCUS 1 @@ -33,7 +33,7 @@ int main(int index) drawSimpleMesh(NAMED_mesh); // Start of images. - bindProgramFragmentStore(NAMED_PSImages); + bindProgramStore(NAMED_PSImages); bindProgramFragment(NAMED_PFImages); bindProgramVertex(NAMED_PVImages); diff --git a/libs/rs/java/Fountain/res/raw/fountain.c b/libs/rs/java/Fountain/res/raw/fountain.c index 86f0f99770ce..f218f9bfba57 100644 --- a/libs/rs/java/Fountain/res/raw/fountain.c +++ b/libs/rs/java/Fountain/res/raw/fountain.c @@ -1,8 +1,5 @@ // Fountain test script #pragma version(1) -#pragma stateVertex(default) -#pragma stateFragment(default) -#pragma stateFragmentStore(default) int newPart = 0; diff --git a/libs/rs/java/Rollo/res/raw/rollo.c b/libs/rs/java/Rollo/res/raw/rollo.c index 63767151c6f2..b31be81aac14 100644 --- a/libs/rs/java/Rollo/res/raw/rollo.c +++ b/libs/rs/java/Rollo/res/raw/rollo.c @@ -1,7 +1,7 @@ #pragma version(1) #pragma stateVertex(PV) #pragma stateFragment(PF) -#pragma stateFragmentStore(PFS) +#pragma stateStore(PFS) // Scratch buffer layout #define SCRATCH_FADE 0 @@ -105,7 +105,7 @@ int main(void* con, int ft, int launchID) if ((zoom < 1.1f) && (zoom > 0.9f)) { bindProgramVertex(NAMED_PVOrtho); bindProgramFragment(NAMED_PFText); - bindProgramFragmentStore(NAMED_PFSText); + bindProgramStore(NAMED_PFSText); rot = drawRot * scale; index = 0; @@ -144,7 +144,7 @@ int main(void* con, int ft, int launchID) bindProgramVertex(NAMED_PV); bindProgramFragment(NAMED_PF); - bindProgramFragmentStore(NAMED_PFS); + bindProgramStore(NAMED_PFS); } // Draw the selected icon diff --git a/libs/rs/java/Rollo/res/raw/rollo2.c b/libs/rs/java/Rollo/res/raw/rollo2.c index 256fa3cf40b7..5b5cb2d382ba 100644 --- a/libs/rs/java/Rollo/res/raw/rollo2.c +++ b/libs/rs/java/Rollo/res/raw/rollo2.c @@ -1,7 +1,7 @@ #pragma version(1) #pragma stateVertex(PV) #pragma stateFragment(PF) -#pragma stateFragmentStore(PFS) +#pragma stateStore(PFS) // Scratch buffer layout #define SCRATCH_FADE 0 diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index 70add927d448..169d5d40ecaf 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -103,12 +103,14 @@ bool Context::runScript(Script *s, uint32_t launchID) ObjectBaseRef<ProgramFragment> frag(mFragment); ObjectBaseRef<ProgramVertex> vtx(mVertex); ObjectBaseRef<ProgramFragmentStore> store(mFragmentStore); + ObjectBaseRef<ProgramRaster> raster(mRaster); bool ret = s->run(this, launchID); mFragment.set(frag); mVertex.set(vtx); mFragmentStore.set(store); + mRaster.set(raster); return ret; } @@ -124,7 +126,6 @@ bool Context::runRootScript() eglQuerySurface(mEGL.mDisplay, mEGL.mSurface, EGL_HEIGHT, &mEGL.mHeight); glViewport(0, 0, mEGL.mWidth, mEGL.mHeight); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - //glEnable(GL_POINT_SMOOTH); glClearColor(mRootScript->mEnviroment.mClearColor[0], mRootScript->mEnviroment.mClearColor[1], diff --git a/libs/rs/rsScript.h b/libs/rs/rsScript.h index 0067fc88b78a..8aa45423c774 100644 --- a/libs/rs/rsScript.h +++ b/libs/rs/rsScript.h @@ -51,7 +51,7 @@ public: ObjectBaseRef<ProgramVertex> mVertex; ObjectBaseRef<ProgramFragment> mFragment; - //ObjectBaseRef<ProgramRaster> mRaster; + ObjectBaseRef<ProgramRaster> mRaster; ObjectBaseRef<ProgramFragmentStore> mFragmentStore; InvokeFunc_t mInvokables[MAX_SCRIPT_BANKS]; const char * mScriptText; diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index e63ed2462dea..20088da31c22 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -72,6 +72,9 @@ bool ScriptC::run(Context *rsc, uint32_t launchIndex) if (mEnviroment.mVertex.get()) { rsc->setVertex(mEnviroment.mVertex.get()); } + if (mEnviroment.mRaster.get()) { + rsc->setRaster(mEnviroment.mRaster.get()); + } if (launchIndex == 0) { mEnviroment.mStartTimeMillis @@ -175,6 +178,7 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s) s->mEnviroment.mFragment.set(rsc->getDefaultProgramFragment()); s->mEnviroment.mVertex.set(rsc->getDefaultProgramVertex()); s->mEnviroment.mFragmentStore.set(rsc->getDefaultProgramFragmentStore()); + s->mEnviroment.mRaster.set(rsc->getDefaultProgramRaster()); if (s->mProgram.mScript) { const static int pragmaMax = 16; @@ -204,6 +208,18 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s) } if (!strcmp(str[ct], "stateRaster")) { + if (!strcmp(str[ct+1], "default")) { + continue; + } + if (!strcmp(str[ct+1], "parent")) { + s->mEnviroment.mRaster.clear(); + continue; + } + ProgramRaster * pr = (ProgramRaster *)rsc->lookupName(str[ct+1]); + if (pr != NULL) { + s->mEnviroment.mRaster.set(pr); + continue; + } LOGE("Unreconized value %s passed to stateRaster", str[ct+1]); } @@ -223,7 +239,7 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s) LOGE("Unreconized value %s passed to stateFragment", str[ct+1]); } - if (!strcmp(str[ct], "stateFragmentStore")) { + if (!strcmp(str[ct], "stateStore")) { if (!strcmp(str[ct+1], "default")) { continue; } @@ -237,7 +253,7 @@ void ScriptCState::runCompiler(Context *rsc, ScriptC *s) s->mEnviroment.mFragmentStore.set(pfs); continue; } - LOGE("Unreconized value %s passed to stateFragmentStore", str[ct+1]); + LOGE("Unreconized value %s passed to stateStore", str[ct+1]); } } diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index f5f182f19f50..2f195a5e66c0 100644 --- a/libs/rs/rsScriptC_Lib.cpp +++ b/libs/rs/rsScriptC_Lib.cpp @@ -672,6 +672,23 @@ static void SC_drawLine(float x1, float y1, float z1, glDrawArrays(GL_LINES, 0, 2); } +static void SC_drawPoint(float x, float y, float z) +{ + GET_TLS(); + rsc->setupCheck(); + + float vtx[] = { x, y, z }; + + glBindBuffer(GL_ARRAY_BUFFER, 0); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, 0, vtx); + + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_POINTS, 0, 1); +} + static void SC_drawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, float x2, float y2, float z2, @@ -1131,6 +1148,8 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { "void", "(int)" }, { "bindProgramFragmentStore", (void *)&SC_bindProgramFragmentStore, "void", "(int)" }, + { "bindProgramStore", (void *)&SC_bindProgramFragmentStore, + "void", "(int)" }, { "bindProgramVertex", (void *)&SC_bindProgramVertex, "void", "(int)" }, { "bindSampler", (void *)&SC_bindSampler, @@ -1155,6 +1174,8 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { "void", "(float x1, float y1, float z1, float u1, float v1, float x2, float y2, float z2, float u2, float v2, float x3, float y3, float z3, float u3, float v3, float x4, float y4, float z4, float u4, float v4)" }, { "drawLine", (void *)&SC_drawLine, "void", "(float x1, float y1, float z1, float x2, float y2, float z2)" }, + { "drawPoint", (void *)&SC_drawPoint, + "void", "(float x1, float y1, float z1)" }, { "drawSimpleMesh", (void *)&SC_drawSimpleMesh, "void", "(int ism)" }, { "drawSimpleMeshRange", (void *)&SC_drawSimpleMeshRange, |