Loading graphics/java/android/renderscript/RenderScript.java +4 −0 Original line number Diff line number Diff line Loading @@ -389,6 +389,10 @@ public class RenderScript { synchronized void nScriptSetVarV(int id, int slot, byte[] val) { rsnScriptSetVarV(mContext, id, slot, val); } native void rsnScriptSetVarObj(int con, int id, int slot, int val); synchronized void nScriptSetVarObj(int id, int slot, int val) { rsnScriptSetVarObj(mContext, id, slot, val); } native void rsnScriptCBegin(int con); synchronized void nScriptCBegin() { Loading graphics/java/android/renderscript/Script.java +4 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,10 @@ public class Script extends BaseObj { mRS.nScriptSetVarI(getID(), index, v ? 1 : 0); } public void setVar(int index, BaseObj o) { mRS.nScriptSetVarObj(getID(), index, (o == null) ? 0 : o.getID()); } public void setVar(int index, FieldPacker v) { mRS.nScriptSetVarV(getID(), index, v.getData()); } Loading graphics/jni/android_renderscript_RenderScript.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -828,6 +828,13 @@ nScriptSetVarI(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo rsScriptSetVarI(con, (RsScript)script, slot, val); } static void nScriptSetVarObj(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jint val) { LOG_API("nScriptSetVarObj, con(%p), s(%p), slot(%i), val(%i)", con, (void *)script, slot, val); rsScriptSetVarObj(con, (RsScript)script, slot, (RsObjectBase)val); } static void nScriptSetVarJ(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jlong val) { Loading Loading @@ -1335,6 +1342,7 @@ static JNINativeMethod methods[] = { {"rsnScriptSetVarF", "(IIIF)V", (void*)nScriptSetVarF }, {"rsnScriptSetVarD", "(IIID)V", (void*)nScriptSetVarD }, {"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV }, {"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj }, {"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin }, {"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript }, Loading libs/rs/rs.spec +6 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,12 @@ ScriptSetVarI { param int value } ScriptSetVarObj { param RsScript s param uint32_t slot param RsObjectBase value } ScriptSetVarJ { param RsScript s param uint32_t slot Loading libs/rs/rsScript.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,22 @@ void Script::setVar(uint32_t slot, const void *val, uint32_t len) { } } void Script::setVarObj(uint32_t slot, ObjectBase *val) { ObjectBase **destPtr = ((ObjectBase ***)mEnviroment.mFieldAddress)[slot]; if (destPtr) { if (val != NULL) { val->incSysRef(); } if (*destPtr) { (*destPtr)->decSysRef(); } *destPtr = val; } else { LOGV("Calling setVarObj on slot = %i which is null. This is dangerous because the script will not hold a ref count on the object.", slot); } } namespace android { namespace renderscript { Loading Loading @@ -103,6 +119,12 @@ void rsi_ScriptSetVarI(Context *rsc, RsScript vs, uint32_t slot, int value) { s->setVar(slot, &value, sizeof(value)); } void rsi_ScriptSetVarObj(Context *rsc, RsScript vs, uint32_t slot, RsObjectBase value) { Script *s = static_cast<Script *>(vs); ObjectBase *o = static_cast<ObjectBase *>(value); s->setVarObj(slot, o); } void rsi_ScriptSetVarJ(Context *rsc, RsScript vs, uint32_t slot, long long value) { Script *s = static_cast<Script *>(vs); s->setVar(slot, &value, sizeof(value)); Loading Loading
graphics/java/android/renderscript/RenderScript.java +4 −0 Original line number Diff line number Diff line Loading @@ -389,6 +389,10 @@ public class RenderScript { synchronized void nScriptSetVarV(int id, int slot, byte[] val) { rsnScriptSetVarV(mContext, id, slot, val); } native void rsnScriptSetVarObj(int con, int id, int slot, int val); synchronized void nScriptSetVarObj(int id, int slot, int val) { rsnScriptSetVarObj(mContext, id, slot, val); } native void rsnScriptCBegin(int con); synchronized void nScriptCBegin() { Loading
graphics/java/android/renderscript/Script.java +4 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,10 @@ public class Script extends BaseObj { mRS.nScriptSetVarI(getID(), index, v ? 1 : 0); } public void setVar(int index, BaseObj o) { mRS.nScriptSetVarObj(getID(), index, (o == null) ? 0 : o.getID()); } public void setVar(int index, FieldPacker v) { mRS.nScriptSetVarV(getID(), index, v.getData()); } Loading
graphics/jni/android_renderscript_RenderScript.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -828,6 +828,13 @@ nScriptSetVarI(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo rsScriptSetVarI(con, (RsScript)script, slot, val); } static void nScriptSetVarObj(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jint val) { LOG_API("nScriptSetVarObj, con(%p), s(%p), slot(%i), val(%i)", con, (void *)script, slot, val); rsScriptSetVarObj(con, (RsScript)script, slot, (RsObjectBase)val); } static void nScriptSetVarJ(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jlong val) { Loading Loading @@ -1335,6 +1342,7 @@ static JNINativeMethod methods[] = { {"rsnScriptSetVarF", "(IIIF)V", (void*)nScriptSetVarF }, {"rsnScriptSetVarD", "(IIID)V", (void*)nScriptSetVarD }, {"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV }, {"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj }, {"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin }, {"rsnScriptCSetScript", "(I[BII)V", (void*)nScriptCSetScript }, Loading
libs/rs/rs.spec +6 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,12 @@ ScriptSetVarI { param int value } ScriptSetVarObj { param RsScript s param uint32_t slot param RsObjectBase value } ScriptSetVarJ { param RsScript s param uint32_t slot Loading
libs/rs/rsScript.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,22 @@ void Script::setVar(uint32_t slot, const void *val, uint32_t len) { } } void Script::setVarObj(uint32_t slot, ObjectBase *val) { ObjectBase **destPtr = ((ObjectBase ***)mEnviroment.mFieldAddress)[slot]; if (destPtr) { if (val != NULL) { val->incSysRef(); } if (*destPtr) { (*destPtr)->decSysRef(); } *destPtr = val; } else { LOGV("Calling setVarObj on slot = %i which is null. This is dangerous because the script will not hold a ref count on the object.", slot); } } namespace android { namespace renderscript { Loading Loading @@ -103,6 +119,12 @@ void rsi_ScriptSetVarI(Context *rsc, RsScript vs, uint32_t slot, int value) { s->setVar(slot, &value, sizeof(value)); } void rsi_ScriptSetVarObj(Context *rsc, RsScript vs, uint32_t slot, RsObjectBase value) { Script *s = static_cast<Script *>(vs); ObjectBase *o = static_cast<ObjectBase *>(value); s->setVarObj(slot, o); } void rsi_ScriptSetVarJ(Context *rsc, RsScript vs, uint32_t slot, long long value) { Script *s = static_cast<Script *>(vs); s->setVar(slot, &value, sizeof(value)); Loading