diff options
author | Jack Palevich <jackpal@google.com> | 2009-05-27 12:38:37 -0700 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2009-05-27 12:38:37 -0700 |
commit | 8191d0f634cb916a0ccf5dce3f98485d3d273f6b (patch) | |
tree | c59a07cfb80977268cd3018aee2ad734eb1b6aaf /libs | |
parent | 55d45223923bc55791e7174f5ea37694aa308e58 (diff) | |
download | frameworks_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.cpp | 49 |
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); |