From 8191d0f634cb916a0ccf5dce3f98485d3d273f6b Mon Sep 17 00:00:00 2001 From: Jack Palevich Date: Wed, 27 May 2009 12:38:37 -0700 Subject: [PATCH] Turn on ACC script test. (It works!) + Modified test script to work with the limitations of the ACC langauge. - No = - use correct C API names for callback methods. --- libs/rs/jni/RenderScript_jni.cpp | 49 +++++++++++++++----------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/libs/rs/jni/RenderScript_jni.cpp b/libs/rs/jni/RenderScript_jni.cpp index ce377fc46650c..b3444c0bb31b2 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= 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);