summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2009-05-27 12:38:37 -0700
committerJack Palevich <jackpal@google.com>2009-05-27 12:38:37 -0700
commit8191d0f634cb916a0ccf5dce3f98485d3d273f6b (patch)
treec59a07cfb80977268cd3018aee2ad734eb1b6aaf /libs
parent55d45223923bc55791e7174f5ea37694aa308e58 (diff)
downloadframeworks_base-8191d0f634cb916a0ccf5dce3f98485d3d273f6b.zip
frameworks_base-8191d0f634cb916a0ccf5dce3f98485d3d273f6b.tar.gz
frameworks_base-8191d0f634cb916a0ccf5dce3f98485d3d273f6b.tar.bz2
Turn on ACC script test. (It works!)
+ Modified test script to work with the limitations of the ACC langauge. - No <op>= - use correct C API names for callback methods.
Diffstat (limited to 'libs')
-rw-r--r--libs/rs/jni/RenderScript_jni.cpp49
1 files changed, 23 insertions, 26 deletions
diff --git a/libs/rs/jni/RenderScript_jni.cpp b/libs/rs/jni/RenderScript_jni.cpp
index ce377fc..b3444c0 100644
--- a/libs/rs/jni/RenderScript_jni.cpp
+++ b/libs/rs/jni/RenderScript_jni.cpp
@@ -33,7 +33,7 @@
#include "../RenderScript.h"
#include "../RenderScriptEnv.h"
-// #define USE_ACC
+#define USE_ACC
#ifdef USE_ACC
#include "acc/acc.h"
@@ -50,7 +50,7 @@ extern "C" void test_script(void *con, const rsc_FunctionTable *ft, uint32_t lau
static const char* TEST_SCRIPT = ""
"// Fountain test script\n"
"\n"
- "void main(con, ft, launchID) {\n"
+ "main(con, ft, launchID) {\n"
" int count, touch, x, y, rate, maxLife, lifeShift;\n"
" int life;\n"
" int ct, ct2;\n"
@@ -62,10 +62,10 @@ static const char* TEST_SCRIPT = ""
" int posx,posy;\n"
" int c;\n"
"\n"
- " count = loadEnvI32(con, 0, 1);\n"
- " touch = loadEnvI32(con, 0, 2);\n"
- " x = loadEnvI32(ft, con, 0, 3);\n"
- " y = 480 - loadEnvI32(con, 0, 4);\n"
+ " count = loadI32(con, 0, 1);\n"
+ " touch = loadI32(con, 0, 2);\n"
+ " x = loadI32(con, 0, 3);\n"
+ " y = 480 - loadI32(con, 0, 4);\n"
"\n"
" rate = 4;\n"
" maxLife = (count / rate) - 1;\n"
@@ -73,35 +73,35 @@ static const char* TEST_SCRIPT = ""
" {\n"
" life = maxLife;\n"
" while (life > 255) {\n"
- " life >>= 1;\n"
+ " life = life >> 1;\n"
" lifeShift ++;\n"
" }\n"
" }\n"
"\n"
" if (touch) {\n"
- " newPart = loadEnvI32(con, 2, 0);\n"
+ " newPart = loadI32(con, 2, 0);\n"
" for (ct2=0; ct2<rate; ct2++) {\n"
" dx = scriptRand(con, 0x10000) - 0x8000;\n"
" dy = scriptRand(con, 0x10000) - 0x8000;\n"
"\n"
" idx = newPart * 5 + 1;\n"
- " storeEnvI32(con, 2, idx, dx);\n"
- " storeEnvI32(con, 2, idx + 1, dy);\n"
- " storeEnvI32(con, 2, idx + 2, maxLife);\n"
- " storeEnvI32(con, 2, idx + 3, x << 16);\n"
- " storeEnvI32(con, 2, idx + 4, y << 16);\n"
+ " storeI32(con, 2, idx, dx);\n"
+ " storeI32(con, 2, idx + 1, dy);\n"
+ " storeI32(con, 2, idx + 2, maxLife);\n"
+ " storeI32(con, 2, idx + 3, x << 16);\n"
+ " storeI32(con, 2, idx + 4, y << 16);\n"
"\n"
" newPart++;\n"
" if (newPart >= count) {\n"
" newPart = 0;\n"
" }\n"
" }\n"
- " storeEnvI32(con, 2, 0, newPart);\n"
+ " storeI32(con, 2, 0, newPart);\n"
" }\n"
"\n"
" // Emulate intrinsic perf...\n"
- " partPtr = loadEnvVp(con, 2, 4);\n"
- " vertPtr = loadEnvVp(con, 1, 0);\n"
+ " partPtr = loadVp(con, 2, 4);\n"
+ " vertPtr = loadVp(con, 1, 0);\n"
"\n"
" drawCount = 0;\n"
" for (ct=0; ct < count; ct++) {\n"
@@ -130,7 +130,7 @@ static const char* TEST_SCRIPT = ""
" * (int* )(vertPtr + 28) = posx - 0x10000; //storeEnvI32(con, 1, dstIdx + 7, posx + 0x0800);\n"
" * (int* )(vertPtr + 32) = posy + dy * 4; //storeEnvI32(con, 1, dstIdx + 8, posy + 0x10000);\n"
"\n"
- " vertPtr += 36;\n"
+ " vertPtr = vertPtr + 36;\n"
" drawCount ++;\n"
" } else {\n"
" if (dy < 0) {\n"
@@ -138,9 +138,9 @@ static const char* TEST_SCRIPT = ""
" }\n"
" }\n"
"\n"
- " posx += dx;\n"
- " posy += dy;\n"
- " dy -= 0x400;\n"
+ " posx = posx + dx;\n"
+ " posy = posy + dy;\n"
+ " dy = dy - 0x400;\n"
" life --;\n"
"\n"
" * (int* )(partPtr + 0) = dx; //storeEnvI32(con, 2, srcIdx, dx);\n"
@@ -150,12 +150,11 @@ static const char* TEST_SCRIPT = ""
" * (int* )(partPtr + 16) = posy; //storeEnvI32(con, 2, srcIdx + 4, posy);\n"
" }\n"
"\n"
- " partPtr += 20;\n"
+ " partPtr = partPtr + 20;\n"
" }\n"
"\n"
- " drawTriangleArray(con, loadEnvI32(con, 0, 5), drawCount);\n"
- "}\n"
- "";
+ " drawTriangleArray(con, loadI32(con, 0, 5), drawCount);\n"
+ "}\n";
typedef void (*ScriptEntry)(void *con, const rsc_FunctionTable *ft, uint32_t launchID);
@@ -166,8 +165,6 @@ void test_script(void *con, const rsc_FunctionTable *ft, uint32_t launchID)
{
if (!gScript) {
gScript = accCreateScript();
- }
- if (!gScriptEntry) {
const char* scriptSource[] = { TEST_SCRIPT };
accScriptSource(gScript, 1, scriptSource, NULL);
accCompileScript(gScript);