diff options
author | Jason Sams <rjsams@android.com> | 2010-05-17 14:55:34 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-05-17 14:55:34 -0700 |
commit | 1de0b87168837cfcd9318bec5c97d2e7d78d3293 (patch) | |
tree | 6b6cd8ea2a55597e3fd3573072cb85af892be731 /libs/rs | |
parent | 38a9544825c6f3482237f9e29cddee58ebc093c3 (diff) | |
download | frameworks_base-1de0b87168837cfcd9318bec5c97d2e7d78d3293.zip frameworks_base-1de0b87168837cfcd9318bec5c97d2e7d78d3293.tar.gz frameworks_base-1de0b87168837cfcd9318bec5c97d2e7d78d3293.tar.bz2 |
Remove more pieces of setRoot. Add pointer to allocation lookup for scripts.
Change-Id: I2c3075d2056f02bb834bfad403dc72da991f3156
Diffstat (limited to 'libs/rs')
-rw-r--r-- | libs/rs/java/Film/src/com/android/film/FilmRS.java | 1 | ||||
-rw-r--r-- | libs/rs/rs.spec | 4 | ||||
-rw-r--r-- | libs/rs/rsScript.cpp | 11 | ||||
-rw-r--r-- | libs/rs/rsScriptC.cpp | 16 | ||||
-rw-r--r-- | libs/rs/rsScriptC.h | 2 | ||||
-rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 10 | ||||
-rw-r--r-- | libs/rs/scriptc/rs_math.rsh | 1 |
7 files changed, 29 insertions, 16 deletions
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 e2daabe..e26b051 100644 --- a/libs/rs/java/Film/src/com/android/film/FilmRS.java +++ b/libs/rs/java/Film/src/com/android/film/FilmRS.java @@ -217,7 +217,6 @@ public class FilmRS { 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); diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec index 2aa12da..4ad25ae 100644 --- a/libs/rs/rs.spec +++ b/libs/rs/rs.spec @@ -293,10 +293,6 @@ ScriptInvokeV { togglePlay } -ScriptSetRoot { - param bool isRoot - } - ScriptSetVarI { param RsScript s param uint32_t slot diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp index 1dd9554..b0bbb22 100644 --- a/libs/rs/rsScript.cpp +++ b/libs/rs/rsScript.cpp @@ -97,12 +97,6 @@ void rsi_ScriptSetType(Context * rsc, RsType vt, uint32_t slot, bool writable, c LOGE("rsi_ScriptSetType"); } -void rsi_ScriptSetInvoke(Context *rsc, const char *name, uint32_t slot) -{ - LOGE("rsi_ScriptSetInvoke"); -} - - void rsi_ScriptInvoke(Context *rsc, RsScript vs, uint32_t slot) { //LOGE("rsi_ScriptInvoke %i", slot); @@ -177,11 +171,6 @@ void rsi_ScriptInvokeV(Context *rsc, RsScript vs, uint32_t slot, const void *dat } -void rsi_ScriptSetRoot(Context * rsc, bool isRoot) -{ - LOGE("rsi_ScriptSetRoot"); -} - void rsi_ScriptSetVarI(Context *rsc, RsScript vs, uint32_t slot, int value) { Script *s = static_cast<Script *>(vs); diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp index e9ba226..8a60d1e 100644 --- a/libs/rs/rsScriptC.cpp +++ b/libs/rs/rsScriptC.cpp @@ -71,6 +71,22 @@ void ScriptC::setupScript() } } +const Allocation *ScriptC::ptrToAllocation(const void *ptr) const +{ + if (!ptr) { + return NULL; + } + for (uint32_t ct=0; ct < mEnviroment.mFieldCount; ct++) { + if (!mSlots[ct].get()) + continue; + if (mSlots[ct]->getPtr() == ptr) { + return mSlots[ct].get(); + } + } + LOGE("ScriptC::ptrToAllocation, failed to find %p", ptr); + return NULL; +} + uint32_t ScriptC::run(Context *rsc, uint32_t launchIndex) { diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h index c23fb73..3cb9a0b 100644 --- a/libs/rs/rsScriptC.h +++ b/libs/rs/rsScriptC.h @@ -52,6 +52,8 @@ public: BCCscript* mBccScript; + const Allocation *ptrToAllocation(const void *) const; + virtual void setupScript(); virtual uint32_t run(Context *, uint32_t launchID); }; diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index 0e09474..19dfaff 100644 --- a/libs/rs/rsScriptC_Lib.cpp +++ b/libs/rs/rsScriptC_Lib.cpp @@ -1113,6 +1113,14 @@ int SC_divsi3(int a, int b) return a / b; } +int SC_getAllocation(const void *ptr) +{ + GET_TLS(); + const Allocation *alloc = sc->ptrToAllocation(ptr); + return (int)alloc; +} + + ////////////////////////////////////////////////////////////////////////////// // Class implementation ////////////////////////////////////////////////////////////////////////////// @@ -1368,6 +1376,8 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { { "debugPi", (void *)&SC_debugPi }, { "scriptCall", (void *)&SC_scriptCall }, + { "rsGetAllocation", (void *)&SC_getAllocation }, + { NULL, NULL } }; diff --git a/libs/rs/scriptc/rs_math.rsh b/libs/rs/scriptc/rs_math.rsh index 48ab066..1d2f1e4 100644 --- a/libs/rs/scriptc/rs_math.rsh +++ b/libs/rs/scriptc/rs_math.rsh @@ -650,4 +650,5 @@ extern void matrixRotate(void *mat, float rot, float x, float y, float z); extern void matrixScale(void *mat, float x, float y, float z); extern void matrixTranslate(void *mat, float x, float y, float z); +extern rs_allocation rsGetAllocation(const void *); |