summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsScriptC_Lib.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-08-06 12:40:41 -0700
committerRomain Guy <romainguy@android.com>2009-08-06 12:40:41 -0700
commitf8e136dcd0a4ba415f2cb8b18c1abfe46cf3512f (patch)
tree76f80d3b2f746ba036e1762b464eaa7e617646a1 /libs/rs/rsScriptC_Lib.cpp
parent838ffacd2ecf4fbefd8d5a083d91f2949eb47faa (diff)
downloadframeworks_base-f8e136dcd0a4ba415f2cb8b18c1abfe46cf3512f.zip
frameworks_base-f8e136dcd0a4ba415f2cb8b18c1abfe46cf3512f.tar.gz
frameworks_base-f8e136dcd0a4ba415f2cb8b18c1abfe46cf3512f.tar.bz2
Use arrays in Grass RS
Diffstat (limited to 'libs/rs/rsScriptC_Lib.cpp')
-rw-r--r--libs/rs/rsScriptC_Lib.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp
index 8a29be34..b7c66e2 100644
--- a/libs/rs/rsScriptC_Lib.cpp
+++ b/libs/rs/rsScriptC_Lib.cpp
@@ -59,22 +59,23 @@ static int32_t SC_loadI32(uint32_t bank, uint32_t offset)
return i[offset];
}
-static float* SC_loadArrayF(uint32_t bank)
+static float* SC_loadArrayF(uint32_t bank, uint32_t offset)
{
GET_TLS();
void *vp = sc->mSlots[bank]->getPtr();
float *f = static_cast<float *>(vp);
- return f;
+ return f + offset;
}
-static int32_t* SC_loadArrayI32(uint32_t bank)
+static int32_t* SC_loadArrayI32(uint32_t bank, uint32_t offset)
{
GET_TLS();
void *vp = sc->mSlots[bank]->getPtr();
int32_t *i = static_cast<int32_t *>(vp);
- return i;
+ return i + offset;
}
+
static uint32_t SC_loadU32(uint32_t bank, uint32_t offset)
{
GET_TLS();
@@ -695,9 +696,9 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = {
{ "loadF", (void *)&SC_loadF,
"float", "(int, int)" },
{ "loadArrayF", (void *)&SC_loadArrayF,
- "float*", "(int)" },
+ "float*", "(int, int)" },
{ "loadArrayI32", (void *)&SC_loadArrayI32,
- "int*", "(int)" },
+ "int*", "(int, int)" },
{ "loadVec4", (void *)&SC_loadVec4,
"void", "(int, int, float *)" },
{ "loadMatrix", (void *)&SC_loadMatrix,