From 455d64426615e5d269a3bd05cd91b67c3811fcdf Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Tue, 5 Feb 2013 19:20:18 -0800 Subject: Implement rs.sendMessage() Change-Id: Ib4f4bb7bb4f697d0b5405ad55721394ed2456c65 --- graphics/jni/android_renderscript_RenderScript.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'graphics/jni') diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index 54413b4..80001a6 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -346,6 +346,23 @@ static void nContextDeinitToClient(JNIEnv *_env, jobject _this, RsContext con) rsContextDeinitToClient(con); } +static void +nContextSendMessage(JNIEnv *_env, jobject _this, RsContext con, jint id, jintArray data) +{ + jint *ptr = NULL; + jint len = 0; + if (data) { + len = _env->GetArrayLength(data); + jint *ptr = _env->GetIntArrayElements(data, NULL); + } + LOG_API("nContextSendMessage, con(%p), id(%i), len(%i)", con, id, len); + rsContextSendMessage(con, id, (const uint8_t *)ptr, len * sizeof(int)); + if (data) { + _env->ReleaseIntArrayElements(data, ptr, JNI_ABORT); + } +} + + static jint nElementCreate(JNIEnv *_env, jobject _this, RsContext con, jint type, jint kind, jboolean norm, jint size) @@ -1434,6 +1451,7 @@ static JNINativeMethod methods[] = { {"rsnContextDump", "(II)V", (void*)nContextDump }, {"rsnContextPause", "(I)V", (void*)nContextPause }, {"rsnContextResume", "(I)V", (void*)nContextResume }, +{"rsnContextSendMessage", "(II[I)V", (void*)nContextSendMessage }, {"rsnAssignName", "(II[B)V", (void*)nAssignName }, {"rsnGetName", "(II)Ljava/lang/String;", (void*)nGetName }, {"rsnObjDestroy", "(II)V", (void*)nObjDestroy }, -- cgit v1.1