From adeb809201fcb77ba2b76a814ae4cdc9dacb326b Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Fri, 20 Apr 2012 14:26:06 -0700 Subject: Start passing element/dim information along with FieldPacker. BUG=6009244 Change-Id: I3c82c8b40c899b875831f53cf0ad82ea36c1a043 --- graphics/jni/android_renderscript_RenderScript.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'graphics/jni') diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index 1b7ef22..3d5d1a9 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -953,6 +953,20 @@ nScriptSetVarV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo _env->ReleaseByteArrayElements(data, ptr, JNI_ABORT); } +static void +nScriptSetVarVE(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data, jint elem, jintArray dims) +{ + LOG_API("nScriptSetVarVE, con(%p), s(%p), slot(%i)", con, (void *)script, slot); + jint len = _env->GetArrayLength(data); + jbyte *ptr = _env->GetByteArrayElements(data, NULL); + jint dimsLen = _env->GetArrayLength(dims) * sizeof(int); + jint *dimsPtr = _env->GetIntArrayElements(dims, NULL); + rsScriptSetVarVE(con, (RsScript)script, slot, ptr, len, (RsElement)elem, + (const size_t*) dimsPtr, dimsLen); + _env->ReleaseByteArrayElements(data, ptr, JNI_ABORT); + _env->ReleaseIntArrayElements(dims, dimsPtr, JNI_ABORT); +} + static void nScriptSetTimeZone(JNIEnv *_env, jobject _this, RsContext con, jint script, jbyteArray timeZone) @@ -1394,6 +1408,7 @@ static JNINativeMethod methods[] = { {"rsnScriptSetVarF", "(IIIF)V", (void*)nScriptSetVarF }, {"rsnScriptSetVarD", "(IIID)V", (void*)nScriptSetVarD }, {"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV }, +{"rsnScriptSetVarVE", "(III[BI[I)V", (void*)nScriptSetVarVE }, {"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj }, {"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;[BI)I", (void*)nScriptCCreate }, -- cgit v1.1