Merge change 2541
* changes: Turn on ACC script test. (It works!)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user