Loading libs/rs/jni/RenderScript_jni.cpp +2 −19 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ #include "../RenderScript.h" #include "../RenderScriptEnv.h" #include "acc/acc.h" //#define LOG_API LOGE #define LOG_API(...) Loading Loading @@ -567,8 +565,6 @@ nScriptCSetScript(JNIEnv *_env, jobject _this, jbyteArray scriptRef, jint remaining; jbyte* script_base = 0; jbyte* script_ptr; ACCscript* script = 0; void* scriptEntry = 0; if (!scriptRef) { _exception = 1; //_env->ThrowNew(IAEClass, "script == null"); Loading @@ -594,22 +590,9 @@ nScriptCSetScript(JNIEnv *_env, jobject _this, jbyteArray scriptRef, _env->GetPrimitiveArrayCritical(scriptRef, (jboolean *)0); script_ptr = script_base + offset; { script = accCreateScript(); const char* scriptSource[] = {(const char*) script_ptr}; int scriptLength[] = {length} ; accScriptSource(script, 1, scriptSource, scriptLength); accCompileScript(script); accGetScriptLabel(script, "main", (ACCvoid**) &scriptEntry); } if (scriptEntry) { rsScriptCSetScript((void*) script, (void *)scriptEntry); script = 0; } rsScriptCSetText((const char *)script_ptr, length); exit: if (script) { accDeleteScript(script); } if (script_base) { _env->ReleasePrimitiveArrayCritical(scriptRef, script_base, _exception ? JNI_ABORT: 0); Loading libs/rs/rs.spec +5 −1 Original line number Diff line number Diff line Loading @@ -286,10 +286,14 @@ ScriptCSetOrtho { } ScriptCSetScript { param void * accScript param void * codePtr } ScriptCSetText { param const char * text param uint32_t length } ScriptCCreate { ret RsScript } Loading libs/rs/rsScriptC.cpp +29 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ ScriptC::ScriptC() { mAccScript = NULL; mScript = NULL; mScriptText = NULL; mScriptTextLength = 0; } ScriptC::~ScriptC() Loading Loading @@ -418,6 +420,21 @@ void ScriptCState::clear() mScript = NULL; mIsRoot = false; mIsOrtho = true; mScriptText = NULL; mScriptTextLength = 0; } void ScriptCState::runCompiler() { mAccScript = accCreateScript(); LOGE("Compiler 1"); const char* scriptSource[] = {mScriptText}; int scriptLength[] = {mScriptTextLength} ; accScriptSource(mAccScript, 1, scriptSource, scriptLength); accCompileScript(mAccScript); accGetScriptLabel(mAccScript, "main", (ACCvoid**) &mScript); LOGE("Compiler 1"); } namespace android { Loading Loading @@ -475,10 +492,20 @@ void rsi_ScriptCSetOrtho(Context * rsc, bool isOrtho) ss->mIsOrtho = isOrtho; } void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { ScriptCState *ss = &rsc->mScriptC; ss->mScriptText = text; ss->mScriptTextLength = len; } RsScript rsi_ScriptCCreate(Context * rsc) { ScriptCState *ss = &rsc->mScriptC; ss->runCompiler(); ScriptC *s = new ScriptC(); s->mAccScript = ss->mAccScript; ss->mAccScript = NULL; Loading @@ -491,7 +518,8 @@ RsScript rsi_ScriptCCreate(Context * rsc) s->mClearStencil = ss->mClearStencil; s->mIsRoot = ss->mIsRoot; s->mIsOrtho = ss->mIsOrtho; s->mScriptText = ss->mScriptText; s->mScriptTextLength = ss->mScriptTextLength; return s; } Loading libs/rs/rsScriptC.h +6 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public: virtual bool run(Context *, uint32_t launchID); const char * mScriptText; uint32_t mScriptTextLength; ACCscript* mAccScript; rsc_RunScript mScript; Loading @@ -58,6 +60,8 @@ public: ~ScriptCState(); ACCscript* mAccScript; const char * mScriptText; uint32_t mScriptTextLength; rsc_RunScript mScript; float mClearColor[4]; float mClearDepth; Loading @@ -68,6 +72,7 @@ public: Vector<const Type *> mConstantBufferTypes; void clear(); void runCompiler(); }; Loading Loading
libs/rs/jni/RenderScript_jni.cpp +2 −19 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ #include "../RenderScript.h" #include "../RenderScriptEnv.h" #include "acc/acc.h" //#define LOG_API LOGE #define LOG_API(...) Loading Loading @@ -567,8 +565,6 @@ nScriptCSetScript(JNIEnv *_env, jobject _this, jbyteArray scriptRef, jint remaining; jbyte* script_base = 0; jbyte* script_ptr; ACCscript* script = 0; void* scriptEntry = 0; if (!scriptRef) { _exception = 1; //_env->ThrowNew(IAEClass, "script == null"); Loading @@ -594,22 +590,9 @@ nScriptCSetScript(JNIEnv *_env, jobject _this, jbyteArray scriptRef, _env->GetPrimitiveArrayCritical(scriptRef, (jboolean *)0); script_ptr = script_base + offset; { script = accCreateScript(); const char* scriptSource[] = {(const char*) script_ptr}; int scriptLength[] = {length} ; accScriptSource(script, 1, scriptSource, scriptLength); accCompileScript(script); accGetScriptLabel(script, "main", (ACCvoid**) &scriptEntry); } if (scriptEntry) { rsScriptCSetScript((void*) script, (void *)scriptEntry); script = 0; } rsScriptCSetText((const char *)script_ptr, length); exit: if (script) { accDeleteScript(script); } if (script_base) { _env->ReleasePrimitiveArrayCritical(scriptRef, script_base, _exception ? JNI_ABORT: 0); Loading
libs/rs/rs.spec +5 −1 Original line number Diff line number Diff line Loading @@ -286,10 +286,14 @@ ScriptCSetOrtho { } ScriptCSetScript { param void * accScript param void * codePtr } ScriptCSetText { param const char * text param uint32_t length } ScriptCCreate { ret RsScript } Loading
libs/rs/rsScriptC.cpp +29 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ ScriptC::ScriptC() { mAccScript = NULL; mScript = NULL; mScriptText = NULL; mScriptTextLength = 0; } ScriptC::~ScriptC() Loading Loading @@ -418,6 +420,21 @@ void ScriptCState::clear() mScript = NULL; mIsRoot = false; mIsOrtho = true; mScriptText = NULL; mScriptTextLength = 0; } void ScriptCState::runCompiler() { mAccScript = accCreateScript(); LOGE("Compiler 1"); const char* scriptSource[] = {mScriptText}; int scriptLength[] = {mScriptTextLength} ; accScriptSource(mAccScript, 1, scriptSource, scriptLength); accCompileScript(mAccScript); accGetScriptLabel(mAccScript, "main", (ACCvoid**) &mScript); LOGE("Compiler 1"); } namespace android { Loading Loading @@ -475,10 +492,20 @@ void rsi_ScriptCSetOrtho(Context * rsc, bool isOrtho) ss->mIsOrtho = isOrtho; } void rsi_ScriptCSetText(Context *rsc, const char *text, uint32_t len) { ScriptCState *ss = &rsc->mScriptC; ss->mScriptText = text; ss->mScriptTextLength = len; } RsScript rsi_ScriptCCreate(Context * rsc) { ScriptCState *ss = &rsc->mScriptC; ss->runCompiler(); ScriptC *s = new ScriptC(); s->mAccScript = ss->mAccScript; ss->mAccScript = NULL; Loading @@ -491,7 +518,8 @@ RsScript rsi_ScriptCCreate(Context * rsc) s->mClearStencil = ss->mClearStencil; s->mIsRoot = ss->mIsRoot; s->mIsOrtho = ss->mIsOrtho; s->mScriptText = ss->mScriptText; s->mScriptTextLength = ss->mScriptTextLength; return s; } Loading
libs/rs/rsScriptC.h +6 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public: virtual bool run(Context *, uint32_t launchID); const char * mScriptText; uint32_t mScriptTextLength; ACCscript* mAccScript; rsc_RunScript mScript; Loading @@ -58,6 +60,8 @@ public: ~ScriptCState(); ACCscript* mAccScript; const char * mScriptText; uint32_t mScriptTextLength; rsc_RunScript mScript; float mClearColor[4]; float mClearDepth; Loading @@ -68,6 +72,7 @@ public: Vector<const Type *> mConstantBufferTypes; void clear(); void runCompiler(); }; Loading