diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 13120368c1937..159e070681e65 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -358,6 +358,10 @@ public class RenderScript { synchronized void nScriptSetVarF(int id, int slot, float val) { rsnScriptSetVarF(mContext, id, slot, val); } + native void rsnScriptSetVarD(int con, int id, int slot, double val); + synchronized void nScriptSetVarD(int id, int slot, double val) { + rsnScriptSetVarD(mContext, id, slot, val); + } native void rsnScriptSetVarV(int con, int id, int slot, byte[] val); synchronized void nScriptSetVarV(int id, int slot, byte[] val) { rsnScriptSetVarV(mContext, id, slot, val); diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java index 19c444c33ef31..8772c4ce40717 100644 --- a/graphics/java/android/renderscript/Script.java +++ b/graphics/java/android/renderscript/Script.java @@ -72,6 +72,10 @@ public class Script extends BaseObj { mRS.nScriptSetVarF(mID, index, v); } + public void setVar(int index, double v) { + mRS.nScriptSetVarD(mID, index, v); + } + public void setVar(int index, int v) { mRS.nScriptSetVarI(mID, index, v); } diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index f3865374ae2a4..ee2080ef73192 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -791,10 +791,17 @@ nScriptSetVarI(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo static void nScriptSetVarF(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, float val) { - LOG_API("nScriptSetVarI, con(%p), s(%p), slot(%i), val(%f)", con, (void *)script, slot, val); + LOG_API("nScriptSetVarF, con(%p), s(%p), slot(%i), val(%f)", con, (void *)script, slot, val); rsScriptSetVarF(con, (RsScript)script, slot, val); } +static void +nScriptSetVarD(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, double val) +{ + LOG_API("nScriptSetVarD, con(%p), s(%p), slot(%i), val(%lf)", con, (void *)script, slot, val); + rsScriptSetVarD(con, (RsScript)script, slot, val); +} + static void nScriptSetVarV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data) { @@ -1281,6 +1288,7 @@ static JNINativeMethod methods[] = { {"rsnScriptInvokeV", "(III[B)V", (void*)nScriptInvokeV }, {"rsnScriptSetVarI", "(IIII)V", (void*)nScriptSetVarI }, {"rsnScriptSetVarF", "(IIIF)V", (void*)nScriptSetVarF }, +{"rsnScriptSetVarD", "(IIID)V", (void*)nScriptSetVarD }, {"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV }, {"rsnScriptCBegin", "(I)V", (void*)nScriptCBegin }, diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec index c7fb2afdb51bc..31d70c76e95d2 100644 --- a/libs/rs/rs.spec +++ b/libs/rs/rs.spec @@ -338,6 +338,12 @@ ScriptSetVarF { param float value } +ScriptSetVarD { + param RsScript s + param uint32_t slot + param double value + } + ScriptSetVarV { param RsScript s param uint32_t slot diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp index fc22fc3f39f71..43bb09e142041 100644 --- a/libs/rs/rsScript.cpp +++ b/libs/rs/rsScript.cpp @@ -101,6 +101,12 @@ void rsi_ScriptSetVarF(Context *rsc, RsScript vs, uint32_t slot, float value) s->setVar(slot, &value, sizeof(value)); } +void rsi_ScriptSetVarD(Context *rsc, RsScript vs, uint32_t slot, double value) +{ + Script *s = static_cast