summaryrefslogtreecommitdiffstats
path: root/libs/rs
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-05-17 14:55:34 -0700
committerJason Sams <rjsams@android.com>2010-05-17 14:55:34 -0700
commit1de0b87168837cfcd9318bec5c97d2e7d78d3293 (patch)
tree6b6cd8ea2a55597e3fd3573072cb85af892be731 /libs/rs
parent38a9544825c6f3482237f9e29cddee58ebc093c3 (diff)
downloadframeworks_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.java1
-rw-r--r--libs/rs/rs.spec4
-rw-r--r--libs/rs/rsScript.cpp11
-rw-r--r--libs/rs/rsScriptC.cpp16
-rw-r--r--libs/rs/rsScriptC.h2
-rw-r--r--libs/rs/rsScriptC_Lib.cpp10
-rw-r--r--libs/rs/scriptc/rs_math.rsh1
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 *);