android_renderscript_RenderScript.cpp revision 40a29e8e28772b37ab0f9fe9708ecdcba24abb84
1d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams/* 2d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Copyright (C) 2006 The Android Open Source Project 3d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 4d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * you may not use this file except in compliance with the License. 6d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * You may obtain a copy of the License at 7d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 8d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * 10d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * Unless required by applicable law or agreed to in writing, software 11d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * See the License for the specific language governing permissions and 14d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams * limitations under the License. 15d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams */ 16d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 17f29ca50d80e3dc379de1642e85b7963175b2ca38Jason Sams#define LOG_TAG "libRS_jni" 18f29ca50d80e3dc379de1642e85b7963175b2ca38Jason Sams 19d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <stdlib.h> 20d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <stdio.h> 21d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <fcntl.h> 22d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <unistd.h> 23d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <math.h> 24d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <utils/misc.h> 25d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 26d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <ui/Surface.h> 27d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 28ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams#include <core/SkBitmap.h> 29ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams 30f29ca50d80e3dc379de1642e85b7963175b2ca38Jason Sams 31d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "jni.h" 32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "JNIHelp.h" 33d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "android_runtime/AndroidRuntime.h" 34d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 35e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams#include <RenderScript.h> 36e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams#include <RenderScriptEnv.h> 37d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams//#define LOG_API LOGE 39d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#define LOG_API(...) 40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 41d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android; 42d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 43d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 44d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 45d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void doThrow(JNIEnv* env, const char* exc, const char* msg = NULL) 46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jclass npeClazz = env->FindClass(exc); 48d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams env->ThrowNew(npeClazz, msg); 49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 51ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Samsstatic jfieldID gContextId = 0; 52ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Samsstatic jfieldID gNativeBitmapID = 0; 53d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 54d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void _nInit(JNIEnv *_env, jclass _this) 55d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 56d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams gContextId = _env->GetFieldID(_this, "mContext", "I"); 57ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams 58ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams jclass bitmapClass = _env->FindClass("android/graphics/Bitmap"); 59ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams gNativeBitmapID = _env->GetFieldID(bitmapClass, "mNativeBitmap", "I"); 60d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 61d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 62d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 63d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 64d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 653eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Samsstatic void 663eaa338e11a3b0d6b87d705e5bb95625e82347bdJason SamsnAssignName(JNIEnv *_env, jobject _this, jint obj, jbyteArray str) 673eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{ 683eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 693eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams LOG_API("nAssignName, con(%p), obj(%p)", con, obj); 703eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 713eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams jint len = _env->GetArrayLength(str); 723eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams jbyte * cptr = (jbyte *) _env->GetPrimitiveArrayCritical(str, 0); 73d5680f9ba95ec7ce212e8025774914e79982a1eeJason Sams rsAssignName((void *)obj, (const char *)cptr, len); 743eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams _env->ReleasePrimitiveArrayCritical(str, cptr, JNI_ABORT); 753eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams} 763eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 773eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 7864676f3c21a07d650069315572811570cbf8f728Jason Samsstatic jint 7964676f3c21a07d650069315572811570cbf8f728Jason SamsnFileOpen(JNIEnv *_env, jobject _this, jbyteArray str) 8064676f3c21a07d650069315572811570cbf8f728Jason Sams{ 8164676f3c21a07d650069315572811570cbf8f728Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 8264676f3c21a07d650069315572811570cbf8f728Jason Sams LOG_API("nFileOpen, con(%p)", con); 8364676f3c21a07d650069315572811570cbf8f728Jason Sams 8464676f3c21a07d650069315572811570cbf8f728Jason Sams jint len = _env->GetArrayLength(str); 8564676f3c21a07d650069315572811570cbf8f728Jason Sams jbyte * cptr = (jbyte *) _env->GetPrimitiveArrayCritical(str, 0); 8664676f3c21a07d650069315572811570cbf8f728Jason Sams jint ret = (jint)rsFileOpen((const char *)cptr, len); 8764676f3c21a07d650069315572811570cbf8f728Jason Sams _env->ReleasePrimitiveArrayCritical(str, cptr, JNI_ABORT); 8864676f3c21a07d650069315572811570cbf8f728Jason Sams return ret; 8964676f3c21a07d650069315572811570cbf8f728Jason Sams} 9064676f3c21a07d650069315572811570cbf8f728Jason Sams 913eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams// --------------------------------------------------------------------------- 923eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 93d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 94d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnDeviceCreate(JNIEnv *_env, jobject _this) 95d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 96d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nDeviceCreate"); 97d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsDeviceCreate(); 98d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 99d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 100d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 101d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnDeviceDestroy(JNIEnv *_env, jobject _this, jint dev) 102d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 103d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nDeviceDestroy"); 104d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return rsDeviceDestroy((RsDevice)dev); 105d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 106d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 107d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 108d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextCreate(JNIEnv *_env, jobject _this, jint dev, jobject wnd, jint ver) 109d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 110d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextCreate"); 111d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 112d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (wnd == NULL) { 113d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams not_valid_surface: 114d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams doThrow(_env, "java/lang/IllegalArgumentException", 115d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams "Make sure the SurfaceView or associated SurfaceHolder has a valid Surface"); 116d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return 0; 117d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 118d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jclass surface_class = _env->FindClass("android/view/Surface"); 119d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfieldID surfaceFieldID = _env->GetFieldID(surface_class, "mSurface", "I"); 120d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Surface * window = (Surface*)_env->GetIntField(wnd, surfaceFieldID); 121d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (window == NULL) 122d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto not_valid_surface; 123d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 124d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsContextCreate((RsDevice)dev, window, ver); 125d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 126d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 127d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 128d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextDestroy(JNIEnv *_env, jobject _this, jint con) 129d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 130d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextDestroy, con(%p)", (RsContext)con); 131d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return rsContextDestroy((RsContext)con); 132d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 133d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 134d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 135d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 136d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementBegin(JNIEnv *_env, jobject _this) 137d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 138d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 139d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementBegin, con(%p)", con); 140d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementBegin(); 141d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 142d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 143d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 144d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementAddPredefined(JNIEnv *_env, jobject _this, jint predef) 145d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 146d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 147d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementAddPredefined, con(%p), predef(%i)", con, predef); 148d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementAddPredefined((RsElementPredefined)predef); 149d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 150d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 151d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 152d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementAdd(JNIEnv *_env, jobject _this, jint kind, jint type, jint norm, jint bits) 153d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 154d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 155d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementAdd, con(%p), kind(%i), type(%i), norm(%i), bits(%i)", con, kind, type, norm, bits); 156d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementAdd((RsDataKind)kind, (RsDataType)type, norm != 0, (size_t)bits); 157d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 158d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 159d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 160d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementCreate(JNIEnv *_env, jobject _this) 161d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 162d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 163d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementCreate, con(%p)", con); 164d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsElementCreate(); 165d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 166d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 167d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 168d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementGetPredefined(JNIEnv *_env, jobject _this, jint predef) 169d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 170d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 171d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementGetPredefined, con(%p) predef(%i)", con, predef); 172d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsElementGetPredefined((RsElementPredefined)predef); 173d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 174d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 175d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 176d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementDestroy(JNIEnv *_env, jobject _this, jint e) 177d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 178d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 179d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementDestroy, con(%p) e(%p)", con, (RsElement)e); 180d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementDestroy((RsElement)e); 181d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 182d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 183d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 184d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 185d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 186d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeBegin(JNIEnv *_env, jobject _this, jint eID) 187d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 188d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 189d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeBegin, con(%p) e(%p)", con, (RsElement)eID); 190d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeBegin((RsElement)eID); 191d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 192d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 193d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 194d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeAdd(JNIEnv *_env, jobject _this, jint dim, jint val) 195d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 196d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 197d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeAdd, con(%p) dim(%i), val(%i)", con, dim, val); 198d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeAdd((RsDimension)dim, val); 199d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 200d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 201d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 202d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeCreate(JNIEnv *_env, jobject _this) 203d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 204d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 205d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeCreate, con(%p)", con); 206d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsTypeCreate(); 207d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 208d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 209d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 210d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeDestroy(JNIEnv *_env, jobject _this, jint eID) 211d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 212d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 213d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeDestroy, con(%p), t(%p)", con, (RsType)eID); 214d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeDestroy((RsType)eID); 215d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 216d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 217d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 218d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 219d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 220d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreateTyped(JNIEnv *_env, jobject _this, jint e) 221d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 222d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 223d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreateTyped, con(%p), e(%p)", con, (RsElement)e); 224d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreateTyped((RsElement)e); 225d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 226d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 227d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 228d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreatePredefSized(JNIEnv *_env, jobject _this, jint predef, jint count) 229d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 230d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 231d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreatePredefSized, con(%p), predef(%i), count(%i)", con, predef, count); 232d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreatePredefSized((RsElementPredefined)predef, count); 233d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 234d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 235d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 236d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreateSized(JNIEnv *_env, jobject _this, jint e, jint count) 237d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 238d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 239d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreateSized, con(%p), e(%p), count(%i)", con, (RsElement)e, count); 240d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreateSized((RsElement)e, count); 241d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 242d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 243d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 244d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationUploadToTexture(JNIEnv *_env, jobject _this, jint a, jint mip) 245d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 246d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 247d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationUploadToTexture, con(%p), a(%p), mip(%i)", con, (RsAllocation)a, mip); 248d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocationUploadToTexture((RsAllocation)a, mip); 249d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 250d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 251ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Samsstatic RsElementPredefined SkBitmapToPredefined(SkBitmap::Config cfg) 252ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams{ 253ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams switch (cfg) { 254ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams case SkBitmap::kA8_Config: 255ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return RS_ELEMENT_A_8; 256ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams case SkBitmap::kARGB_4444_Config: 257ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return RS_ELEMENT_RGBA_4444; 258ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams case SkBitmap::kARGB_8888_Config: 259ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return RS_ELEMENT_RGBA_8888; 260ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams case SkBitmap::kRGB_565_Config: 261ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return RS_ELEMENT_RGB_565; 262ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams 263ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams default: 264ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams break; 265ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams } 266ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams // If we don't have a conversion mark it as a user type. 267ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams LOGE("Unsupported bitmap type"); 268ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return RS_ELEMENT_USER_U8; 269ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams} 270ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams 271fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Samsstatic int 272ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason SamsnAllocationCreateFromBitmap(JNIEnv *_env, jobject _this, jint dstFmt, jboolean genMips, jobject jbitmap) 273fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams{ 274fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 275ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams SkBitmap const * nativeBitmap = 276ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams (SkBitmap const *)_env->GetIntField(jbitmap, gNativeBitmapID); 277ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams const SkBitmap& bitmap(*nativeBitmap); 278ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams SkBitmap::Config config = bitmap.getConfig(); 279fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams 280ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams RsElementPredefined e = SkBitmapToPredefined(config); 281fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams 282ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams if (e != RS_ELEMENT_USER_U8) { 283ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams bitmap.lockPixels(); 284ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams const int w = bitmap.width(); 285ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams const int h = bitmap.height(); 286ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams const void* ptr = bitmap.getPixels(); 287ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams jint id = (jint)rsAllocationCreateFromBitmap(w, h, (RsElementPredefined)dstFmt, e, genMips, ptr); 288ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams bitmap.unlockPixels(); 289ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return id; 290ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams } 291ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams return 0; 292ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams} 293fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams 294b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Samsstatic int 295b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason SamsnAllocationCreateFromBitmapBoxed(JNIEnv *_env, jobject _this, jint dstFmt, jboolean genMips, jobject jbitmap) 296b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams{ 297b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 298b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams SkBitmap const * nativeBitmap = 299b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams (SkBitmap const *)_env->GetIntField(jbitmap, gNativeBitmapID); 300b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams const SkBitmap& bitmap(*nativeBitmap); 301b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams SkBitmap::Config config = bitmap.getConfig(); 302b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams 303b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams RsElementPredefined e = SkBitmapToPredefined(config); 304b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams 305b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams if (e != RS_ELEMENT_USER_U8) { 306b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams bitmap.lockPixels(); 307b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams const int w = bitmap.width(); 308b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams const int h = bitmap.height(); 309b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams const void* ptr = bitmap.getPixels(); 310b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams jint id = (jint)rsAllocationCreateFromBitmapBoxed(w, h, (RsElementPredefined)dstFmt, e, genMips, ptr); 311b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams bitmap.unlockPixels(); 312b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams return id; 313b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams } 314b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams return 0; 315b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams} 316b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams 317fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams 318d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 319d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationDestroy(JNIEnv *_env, jobject _this, jint a) 320d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 321d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 322d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationDestroy, con(%p), a(%p)", con, (RsAllocation)a); 323d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocationDestroy((RsAllocation)a); 324d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 325d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 326d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 327d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationData_i(JNIEnv *_env, jobject _this, jint alloc, jintArray data) 328d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 329d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 330d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 331d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationData_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); 332d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 333d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocationData((RsAllocation)alloc, ptr); 334d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, JNI_ABORT); 335d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 336d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 337d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 338d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationData_f(JNIEnv *_env, jobject _this, jint alloc, jfloatArray data) 339d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 340d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 341d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 342d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationData_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); 343d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 344d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocationData((RsAllocation)alloc, ptr); 345d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT); 346d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 347d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 348d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 349d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationSubData1D_i(JNIEnv *_env, jobject _this, jint alloc, jint offset, jint count, jintArray data) 350d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 351d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 352d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 353d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocation1DSubData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAllocation)alloc, offset, count, len); 354d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 355d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocation1DSubData((RsAllocation)alloc, offset, count, ptr); 356d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, JNI_ABORT); 357d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 358d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 359d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 360d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationSubData1D_f(JNIEnv *_env, jobject _this, jint alloc, jint offset, jint count, jfloatArray data) 361d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 362d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 363d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 364d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocation1DSubData_f, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAllocation)alloc, offset, count, len); 365d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 366d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocation1DSubData((RsAllocation)alloc, offset, count, ptr); 367d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT); 368d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 369d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 370d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 371d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationSubData2D_i(JNIEnv *_env, jobject _this, jint alloc, jint xoff, jint yoff, jint w, jint h, jintArray data) 372d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 373d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 374d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 375d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocation2DSubData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len); 376d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 377d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocation2DSubData((RsAllocation)alloc, xoff, yoff, w, h, ptr); 378d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, JNI_ABORT); 379d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 380d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 381d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 382d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationSubData2D_f(JNIEnv *_env, jobject _this, jint alloc, jint xoff, jint yoff, jint w, jint h, jfloatArray data) 383d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 384d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 385d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 386d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocation2DSubData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len); 387d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 388d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocation2DSubData((RsAllocation)alloc, xoff, yoff, w, h, ptr); 389d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT); 390d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 391d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 39240a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Samsstatic void 39340a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason SamsnAllocationRead_i(JNIEnv *_env, jobject _this, jint alloc, jintArray data) 39440a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams{ 39540a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 39640a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams jint len = _env->GetArrayLength(data); 39740a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); 39840a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 39940a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams rsAllocationData((RsAllocation)alloc, ptr); 40040a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams _env->ReleaseIntArrayElements(data, ptr, JNI_COMMIT); 40140a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams} 40240a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams 40340a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Samsstatic void 40440a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason SamsnAllocationRead_f(JNIEnv *_env, jobject _this, jint alloc, jfloatArray data) 40540a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams{ 40640a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 40740a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams jint len = _env->GetArrayLength(data); 40840a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len); 40940a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 41040a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams rsAllocationData((RsAllocation)alloc, ptr); 41140a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams _env->ReleaseFloatArrayElements(data, ptr, JNI_COMMIT); 41240a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams} 413d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 414d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 415d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 416d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 417d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 418d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshDestroy(JNIEnv *_env, jobject _this, jint tm) 419d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 420d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 421d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshDestroy, con(%p), tm(%p)", con, (RsAllocation)tm); 422d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshDestroy((RsTriangleMesh)tm); 423d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 424d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 425d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 426d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshBegin(JNIEnv *_env, jobject _this, jint v, jint i) 427d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 428d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 429d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshBegin, con(%p), vertex(%p), index(%p)", con, (RsElement)v, (RsElement)i); 430d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshBegin((RsElement)v, (RsElement)i); 431d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 432d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 433d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 434d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XY(JNIEnv *_env, jobject _this, jfloat x, jfloat y) 435d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 436d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {x, y}; 437d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 438d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XY, con(%p), x(%f), y(%f)", con, x, y); 439d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 440d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 441d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 442d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 443d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XYZ(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) 444d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 445d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {x, y, z}; 446d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 447d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XYZ, con(%p), x(%f), y(%f), z(%f)", con, x, y, z); 448d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 449d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 450d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 451d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 452d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XY_ST(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat s, jfloat t) 453d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 454d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {s, t, x, y}; 455d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 456d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XY_ST, con(%p), x(%f), y(%f), s(%f), t(%f)", con, x, y, s, t); 457d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 458d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 459d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 460d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 461d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XYZ_ST(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat s, jfloat t) 462d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 463d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {s, t, x, y, z}; 464d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 465d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XYZ_ST, con(%p), x(%f), y(%f), z(%f), s(%f), t(%f)", con, x, y, z, s, t); 466d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 467d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 468d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 469d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 4700826a6f90f049bf94fc39fb23ad3a736a14b96ebJason SamsnTriangleMeshAddVertex_XYZ_ST_NORM(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat s, jfloat t, jfloat nx, jfloat ny, jfloat nz) 4710826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams{ 4720826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams float v[] = {nx, ny, nz, s, t, x, y, z}; 4730826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 4740826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams LOG_API("nTriangleMeshAddVertex_XYZ_ST, con(%p), x(%f), y(%f), z(%f), s(%f), t(%f)", con, x, y, z, s, t); 4750826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams rsTriangleMeshAddVertex(v); 4760826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams} 4770826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 4780826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Samsstatic void 479d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddTriangle(JNIEnv *_env, jobject _this, jint i1, jint i2, jint i3) 480d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 481d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 482d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddTriangle, con(%p), i1(%i), i2(%i), i3(%i)", con, i1, i2, i3); 483d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddTriangle(i1, i2, i3); 484d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 485d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 486d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 487d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshCreate(JNIEnv *_env, jobject _this) 488d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 489d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 490d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshCreate, con(%p)", con); 491d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsTriangleMeshCreate(); 492d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 493d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 494d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 495d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 496d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 497d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DDestroy(JNIEnv *_env, jobject _this, jint adapter) 498d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 499d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 500d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DDestroy, con(%p), adapter(%p)", con, (RsAdapter1D)adapter); 501d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DDestroy((RsAdapter1D)adapter); 502d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 503d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 504d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 505d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DBindAllocation(JNIEnv *_env, jobject _this, jint adapter, jint alloc) 506d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 507d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 508d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DBindAllocation, con(%p), adapter(%p), alloc(%p)", con, (RsAdapter1D)adapter, (RsAllocation)alloc); 509d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DBindAllocation((RsAdapter1D)adapter, (RsAllocation)alloc); 510d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 511d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 512d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 513d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSetConstraint(JNIEnv *_env, jobject _this, jint adapter, jint dim, jint value) 514d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 515d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 516d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSetConstraint, con(%p), adapter(%p), dim(%i), value(%i)", con, (RsAdapter1D)adapter, dim, value); 517d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSetConstraint((RsAdapter1D)adapter, (RsDimension)dim, value); 518d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 519d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 520d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 521d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DData_i(JNIEnv *_env, jobject _this, jint adapter, jintArray data) 522d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 523d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 524d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 525d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DData_i, con(%p), adapter(%p), len(%i)", con, (RsAdapter1D)adapter, len); 526d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 527d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DData((RsAdapter1D)adapter, ptr); 528d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 529d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 530d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 531d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 532d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSubData_i(JNIEnv *_env, jobject _this, jint adapter, jint offset, jint count, jintArray data) 533d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 534d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 535d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 536d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSubData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAdapter1D)adapter, offset, count, len); 537d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 538d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSubData((RsAdapter1D)adapter, offset, count, ptr); 539d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 540d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 541d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 542d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 543d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DData_f(JNIEnv *_env, jobject _this, jint adapter, jfloatArray data) 544d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 545d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 546d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 547d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DData_f, con(%p), adapter(%p), len(%i)", con, (RsAdapter1D)adapter, len); 548d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 549d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DData((RsAdapter1D)adapter, ptr); 550d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 551d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 552d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 553d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 554d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSubData_f(JNIEnv *_env, jobject _this, jint adapter, jint offset, jint count, jfloatArray data) 555d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 556d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 557d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 558d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSubData_f, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAdapter1D)adapter, offset, count, len); 559d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 560d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSubData((RsAdapter1D)adapter, offset, count, ptr); 561d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 562d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 563d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 564d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 565d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DCreate(JNIEnv *_env, jobject _this) 566d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 567d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 568d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DCreate, con(%p)", con); 569d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsAdapter1DCreate(); 570d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 571d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 572d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 573d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 574d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 575bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DDestroy(JNIEnv *_env, jobject _this, jint adapter) 576bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 577bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 578bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DDestroy, con(%p), adapter(%p)", con, (RsAdapter2D)adapter); 579bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DDestroy((RsAdapter2D)adapter); 580bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 581bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 582bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 583bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DBindAllocation(JNIEnv *_env, jobject _this, jint adapter, jint alloc) 584bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 585bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 586bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DBindAllocation, con(%p), adapter(%p), alloc(%p)", con, (RsAdapter2D)adapter, (RsAllocation)alloc); 587bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DBindAllocation((RsAdapter2D)adapter, (RsAllocation)alloc); 588bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 589bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 590bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 591bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DSetConstraint(JNIEnv *_env, jobject _this, jint adapter, jint dim, jint value) 592bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 593bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 594bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DSetConstraint, con(%p), adapter(%p), dim(%i), value(%i)", con, (RsAdapter2D)adapter, dim, value); 595bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DSetConstraint((RsAdapter2D)adapter, (RsDimension)dim, value); 596bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 597bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 598bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 599bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DData_i(JNIEnv *_env, jobject _this, jint adapter, jintArray data) 600bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 601bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 602bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint len = _env->GetArrayLength(data); 603bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DData_i, con(%p), adapter(%p), len(%i)", con, (RsAdapter2D)adapter, len); 604bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 605bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DData((RsAdapter2D)adapter, ptr); 606bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 607bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 608bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 609bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 610bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DData_f(JNIEnv *_env, jobject _this, jint adapter, jfloatArray data) 611bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 612bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 613bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint len = _env->GetArrayLength(data); 614bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DData_f, con(%p), adapter(%p), len(%i)", con, (RsAdapter2D)adapter, len); 615bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 616bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DData((RsAdapter2D)adapter, ptr); 617bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 618bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 619bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 620bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 621bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DSubData_i(JNIEnv *_env, jobject _this, jint adapter, jint xoff, jint yoff, jint w, jint h, jintArray data) 622bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 623bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 624bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint len = _env->GetArrayLength(data); 625bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DSubData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", 626bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams con, (RsAdapter2D)adapter, xoff, yoff, w, h, len); 627bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 628bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DSubData((RsAdapter2D)adapter, xoff, yoff, w, h, ptr); 629bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 630bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 631bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 632bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 633bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DSubData_f(JNIEnv *_env, jobject _this, jint adapter, jint xoff, jint yoff, jint w, jint h, jfloatArray data) 634bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 635bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 636bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jint len = _env->GetArrayLength(data); 637bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DSubData_f, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", 638bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams con, (RsAdapter2D)adapter, xoff, yoff, w, h, len); 639bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 640bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams rsAdapter2DSubData((RsAdapter1D)adapter, xoff, yoff, w, h, ptr); 641bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 642bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 643bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 644bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic jint 645bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason SamsnAdapter2DCreate(JNIEnv *_env, jobject _this) 646bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{ 647bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 648bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams LOG_API("nAdapter2DCreate, con(%p)", con); 649bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams return (jint)rsAdapter2DCreate(); 650bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams} 651bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 652bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams// ----------------------------------- 653bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 654bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Samsstatic void 655d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptDestroy(JNIEnv *_env, jobject _this, jint script) 656d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 657d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 658d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptDestroy, con(%p), script(%p)", con, (RsScript)script); 659d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptDestroy((RsScript)script); 660d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 661d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 662d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 663d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptBindAllocation(JNIEnv *_env, jobject _this, jint script, jint alloc, jint slot) 664d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 665d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 666d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptBindAllocation, con(%p), script(%p), alloc(%p), slot(%i)", con, (RsScript)script, (RsAllocation)alloc, slot); 667d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptBindAllocation((RsScript)script, (RsAllocation)alloc, slot); 668d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 669d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 670d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 67122534176fb5c1257130ef4ee589739ca42766a32Jason SamsnScriptSetClearColor(JNIEnv *_env, jobject _this, jint script, jfloat r, jfloat g, jfloat b, jfloat a) 672d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 673d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 67422534176fb5c1257130ef4ee589739ca42766a32Jason Sams LOG_API("nScriptSetClearColor, con(%p), s(%p), r(%f), g(%f), b(%f), a(%f)", con, script, r, g, b, a); 67522534176fb5c1257130ef4ee589739ca42766a32Jason Sams rsScriptSetClearColor((RsScript)script, r, g, b, a); 676d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 677d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 678d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 67922534176fb5c1257130ef4ee589739ca42766a32Jason SamsnScriptSetClearDepth(JNIEnv *_env, jobject _this, jint script, jfloat d) 680d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 681d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 68222534176fb5c1257130ef4ee589739ca42766a32Jason Sams LOG_API("nScriptCSetClearDepth, con(%p), s(%p), depth(%f)", con, script, d); 68322534176fb5c1257130ef4ee589739ca42766a32Jason Sams rsScriptSetClearDepth((RsScript)script, d); 684d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 685d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 686d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 68722534176fb5c1257130ef4ee589739ca42766a32Jason SamsnScriptSetClearStencil(JNIEnv *_env, jobject _this, jint script, jint stencil) 688d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 689d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 69022534176fb5c1257130ef4ee589739ca42766a32Jason Sams LOG_API("nScriptCSetClearStencil, con(%p), s(%p), stencil(%i)", con, script, stencil); 69122534176fb5c1257130ef4ee589739ca42766a32Jason Sams rsScriptSetClearStencil((RsScript)script, stencil); 692d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 693d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 694d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 69522534176fb5c1257130ef4ee589739ca42766a32Jason SamsnScriptSetTimeZone(JNIEnv *_env, jobject _this, jint script, jbyteArray timeZone) 696584a375df68ed7d62b38389078c6804edf228f9cRomain Guy{ 697584a375df68ed7d62b38389078c6804edf228f9cRomain Guy RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 69822534176fb5c1257130ef4ee589739ca42766a32Jason Sams LOG_API("nScriptCSetTimeZone, con(%p), s(%p), timeZone(%s)", con, script, timeZone); 699584a375df68ed7d62b38389078c6804edf228f9cRomain Guy 700584a375df68ed7d62b38389078c6804edf228f9cRomain Guy jint length = _env->GetArrayLength(timeZone); 701584a375df68ed7d62b38389078c6804edf228f9cRomain Guy jbyte* timeZone_ptr; 702584a375df68ed7d62b38389078c6804edf228f9cRomain Guy timeZone_ptr = (jbyte *) _env->GetPrimitiveArrayCritical(timeZone, (jboolean *)0); 703584a375df68ed7d62b38389078c6804edf228f9cRomain Guy 70422534176fb5c1257130ef4ee589739ca42766a32Jason Sams rsScriptSetTimeZone((RsScript)script, (const char *)timeZone_ptr, length); 705584a375df68ed7d62b38389078c6804edf228f9cRomain Guy 706584a375df68ed7d62b38389078c6804edf228f9cRomain Guy if (timeZone_ptr) { 707584a375df68ed7d62b38389078c6804edf228f9cRomain Guy _env->ReleasePrimitiveArrayCritical(timeZone, timeZone_ptr, 0); 708584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 709584a375df68ed7d62b38389078c6804edf228f9cRomain Guy} 710584a375df68ed7d62b38389078c6804edf228f9cRomain Guy 71122534176fb5c1257130ef4ee589739ca42766a32Jason Sams// ----------------------------------- 71222534176fb5c1257130ef4ee589739ca42766a32Jason Sams 71322534176fb5c1257130ef4ee589739ca42766a32Jason Samsstatic void 71422534176fb5c1257130ef4ee589739ca42766a32Jason SamsnScriptCBegin(JNIEnv *_env, jobject _this) 71522534176fb5c1257130ef4ee589739ca42766a32Jason Sams{ 71622534176fb5c1257130ef4ee589739ca42766a32Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 71722534176fb5c1257130ef4ee589739ca42766a32Jason Sams LOG_API("nScriptCBegin, con(%p)", con); 71822534176fb5c1257130ef4ee589739ca42766a32Jason Sams rsScriptCBegin(); 71922534176fb5c1257130ef4ee589739ca42766a32Jason Sams} 72022534176fb5c1257130ef4ee589739ca42766a32Jason Sams 721584a375df68ed7d62b38389078c6804edf228f9cRomain Guystatic void 722d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCAddType(JNIEnv *_env, jobject _this, jint type) 723d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 724d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 725d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCAddType, con(%p), type(%p)", con, (RsType)type); 726d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCAddType((RsType)type); 727d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 728d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 729d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 730d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetRoot(JNIEnv *_env, jobject _this, jboolean isRoot) 731d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 732d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 733d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCSetRoot, con(%p), isRoot(%i)", con, isRoot); 734d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetRoot(isRoot); 735d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 736d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 737d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 73843702d8925c54360ad5f9f66b0d35d61d59f6910Jack PalevichnScriptCSetScript(JNIEnv *_env, jobject _this, jbyteArray scriptRef, 73943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich jint offset, jint length) 740d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 741d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 742d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("!!! nScriptCSetScript, con(%p)", con); 74343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich jint _exception = 0; 74443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich jint remaining; 74543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich jbyte* script_base = 0; 74643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich jbyte* script_ptr; 74743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (!scriptRef) { 74843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _exception = 1; 74943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich //_env->ThrowNew(IAEClass, "script == null"); 75043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich goto exit; 75143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 75243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (offset < 0) { 75343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _exception = 1; 75443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich //_env->ThrowNew(IAEClass, "offset < 0"); 75543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich goto exit; 75643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 75743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (length < 0) { 75843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _exception = 1; 75943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich //_env->ThrowNew(IAEClass, "length < 0"); 76043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich goto exit; 76143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 76243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich remaining = _env->GetArrayLength(scriptRef) - offset; 76343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (remaining < length) { 76443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _exception = 1; 76543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich //_env->ThrowNew(IAEClass, "length > script.length - offset"); 76643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich goto exit; 76743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 76843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich script_base = (jbyte *) 76943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _env->GetPrimitiveArrayCritical(scriptRef, (jboolean *)0); 77043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich script_ptr = script_base + offset; 77143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 77239ddc950c9064129ead5de04b200106c0659f937Jason Sams rsScriptCSetText((const char *)script_ptr, length); 77339ddc950c9064129ead5de04b200106c0659f937Jason Sams 77443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevichexit: 77543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (script_base) { 77643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _env->ReleasePrimitiveArrayCritical(scriptRef, script_base, 77743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich _exception ? JNI_ABORT: 0); 77843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 779d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 780d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 781d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 782d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCCreate(JNIEnv *_env, jobject _this) 783d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 784d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 785d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCCreate, con(%p)", con); 786d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsScriptCCreate(); 787d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 788d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 789d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onoratostatic void 790d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe OnoratonScriptCAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) 791d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{ 792d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 793d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato const char* n = _env->GetStringUTFChars(name, NULL); 794d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); 795d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato rsScriptCSetDefineI32(n, value); 796d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato _env->ReleaseStringUTFChars(name, n); 797d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato} 798d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato 799d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onoratostatic void 800d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe OnoratonScriptCAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) 801d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{ 802d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 803d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato const char* n = _env->GetStringUTFChars(name, NULL); 804d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); 805d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato rsScriptCSetDefineF(n, value); 806d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato _env->ReleaseStringUTFChars(name, n); 807d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato} 808d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato 809d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 810d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 811d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 812d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreBegin(JNIEnv *_env, jobject _this, jint in, jint out) 813d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 814d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 815d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out); 816d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreBegin((RsElement)in, (RsElement)out); 817d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 818d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 819d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 820d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDepthFunc(JNIEnv *_env, jobject _this, jint func) 821d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 822d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 823d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDepthFunc, con(%p), func(%i)", con, func); 824d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDepthFunc((RsDepthFunc)func); 825d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 826d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 827d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 828d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDepthMask(JNIEnv *_env, jobject _this, jboolean enable) 829d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 830d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 831d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDepthMask, con(%p), enable(%i)", con, enable); 832d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDepthMask(enable); 833d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 834d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 835d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 836d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreColorMask(JNIEnv *_env, jobject _this, jboolean r, jboolean g, jboolean b, jboolean a) 837d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 838d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 839d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreColorMask, con(%p), r(%i), g(%i), b(%i), a(%i)", con, r, g, b, a); 840d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreColorMask(r, g, b, a); 841d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 842d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 843d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 844d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreBlendFunc(JNIEnv *_env, jobject _this, int src, int dst) 845d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 846d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 847d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreBlendFunc, con(%p), src(%i), dst(%i)", con, src, dst); 848d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreBlendFunc((RsBlendSrcFunc)src, (RsBlendDstFunc)dst); 849d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 850d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 851d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 852d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDither(JNIEnv *_env, jobject _this, jboolean enable) 853d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 854d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 855d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDither, con(%p), enable(%i)", con, enable); 856d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDither(enable); 857d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 858d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 859d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 860d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreCreate(JNIEnv *_env, jobject _this) 861d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 862d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 863d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreCreate, con(%p)", con); 8643eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 865d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsProgramFragmentStoreCreate(); 866d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 867d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 8683eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Samsstatic void 8693eaa338e11a3b0d6b87d705e5bb95625e82347bdJason SamsnProgramFragmentStoreDestroy(JNIEnv *_env, jobject _this, jint pgm) 8703eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{ 8713eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 8723eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams LOG_API("nProgramFragmentStoreDestroy, con(%p), pgm(%i)", con, pgm); 8733eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams rsProgramFragmentStoreDestroy((RsProgramFragmentStore)pgm); 8743eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams} 8753eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 876d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 877d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 878d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 879d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBegin(JNIEnv *_env, jobject _this, jint in, jint out) 880d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 881d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 882d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out); 883d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBegin((RsElement)in, (RsElement)out); 884d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 885d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 886d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 887d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBindTexture(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) 888d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 889d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 890d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBindTexture, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsAllocation)a); 891d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBindTexture((RsProgramFragment)vpf, slot, (RsAllocation)a); 892d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 893d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 894d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 895d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBindSampler(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) 896d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 897d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 898d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBindSampler, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsSampler)a); 899d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBindSampler((RsProgramFragment)vpf, slot, (RsSampler)a); 900d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 901d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 902d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 903d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetType(JNIEnv *_env, jobject _this, jint slot, jint vt) 904d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 905d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 906d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetType, con(%p), slot(%i), vt(%p)", con, slot, (RsType)vt); 907d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetType(slot, (RsType)vt); 908d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 909d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 910d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 911d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetEnvMode(JNIEnv *_env, jobject _this, jint slot, jint env) 912d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 913d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 914d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetEnvMode, con(%p), slot(%i), vt(%i)", con, slot, env); 915d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetEnvMode(slot, (RsTexEnvMode)env); 916d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 917d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 918d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 919d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetTexEnable(JNIEnv *_env, jobject _this, jint slot, jboolean enable) 920d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 921d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 922d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetTexEnable, con(%p), slot(%i), enable(%i)", con, slot, enable); 923d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetTexEnable(slot, enable); 924d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 925d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 926d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 927d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentCreate(JNIEnv *_env, jobject _this, jint slot, jboolean enable) 928d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 929d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 930d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentCreate, con(%p)", con); 931d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsProgramFragmentCreate(); 932d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 933d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 9343eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Samsstatic void 9353eaa338e11a3b0d6b87d705e5bb95625e82347bdJason SamsnProgramFragmentDestroy(JNIEnv *_env, jobject _this, jint pgm) 9363eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{ 9373eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9383eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams LOG_API("nProgramFragmentDestroy, con(%p), pgm(%i)", con, pgm); 9393eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams rsProgramFragmentDestroy((RsProgramFragment)pgm); 9403eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams} 9413eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 9421fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams// --------------------------------------------------------------------------- 9431fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9441fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Samsstatic void 9451fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason SamsnProgramVertexBegin(JNIEnv *_env, jobject _this, jint in, jint out) 9461fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{ 9471fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9481fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams LOG_API("nProgramVertexBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out); 9491fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams rsProgramVertexBegin((RsElement)in, (RsElement)out); 9501fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams} 9511fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9521fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Samsstatic void 9539bee51c42eb8c3daffe7d6fa483edbb1689b94d2Jason SamsnProgramVertexBindAllocation(JNIEnv *_env, jobject _this, jint vpv, jint a) 9541fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{ 9551fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9561fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams LOG_API("nProgramVertexBindAllocation, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramVertex)vpv, slot, (RsAllocation)a); 9579bee51c42eb8c3daffe7d6fa483edbb1689b94d2Jason Sams rsProgramVertexBindAllocation((RsProgramFragment)vpv, (RsAllocation)a); 9581fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams} 9591fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9601fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Samsstatic void 9611fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason SamsnProgramVertexSetTextureMatrixEnable(JNIEnv *_env, jobject _this, jboolean enable) 9621fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{ 9631fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9641fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams LOG_API("nProgramVertexSetTextureMatrixEnable, con(%p), enable(%i)", con, enable); 9651fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams rsProgramVertexSetTextureMatrixEnable(enable); 9661fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams} 9671fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 968ee41112e1539de95596600fd2c6dada5d275217fJason Samsstatic void 969ee41112e1539de95596600fd2c6dada5d275217fJason SamsnProgramVertexAddLight(JNIEnv *_env, jobject _this, jint light) 970ee41112e1539de95596600fd2c6dada5d275217fJason Sams{ 971ee41112e1539de95596600fd2c6dada5d275217fJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 972ee41112e1539de95596600fd2c6dada5d275217fJason Sams LOG_API("nProgramVertexAddLight, con(%p), light(%p)", con, (RsLight)light); 973ee41112e1539de95596600fd2c6dada5d275217fJason Sams rsProgramVertexAddLight((RsLight)light); 974ee41112e1539de95596600fd2c6dada5d275217fJason Sams} 975ee41112e1539de95596600fd2c6dada5d275217fJason Sams 9761fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Samsstatic jint 9771fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason SamsnProgramVertexCreate(JNIEnv *_env, jobject _this) 9781fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{ 9791fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9801fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams LOG_API("nProgramVertexCreate, con(%p)", con); 9811fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams return (jint)rsProgramVertexCreate(); 9821fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams} 9831fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9841fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Samsstatic void 9851fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason SamsnProgramVertexDestroy(JNIEnv *_env, jobject _this, jint pgm) 9861fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{ 9871fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 9881fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams LOG_API("nProgramFragmentDestroy, con(%p), pgm(%i)", con, pgm); 9891fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams rsProgramFragmentDestroy((RsProgramFragment)pgm); 9901fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams} 9911fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9921fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 9931fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 994d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 995d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 996d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 997d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 998d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindRootScript(JNIEnv *_env, jobject _this, jint script) 999d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 1000d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1001d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindRootScript, con(%p), script(%p)", con, (RsScript)script); 1002d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindRootScript((RsScript)script); 1003d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 1004d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1005d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 1006d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindProgramFragmentStore(JNIEnv *_env, jobject _this, jint pfs) 1007d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 1008d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1009d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindProgramFragmentStore, con(%p), pfs(%p)", con, (RsProgramFragmentStore)pfs); 1010d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindProgramFragmentStore((RsProgramFragmentStore)pfs); 1011d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 1012d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1013d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 1014d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindProgramFragment(JNIEnv *_env, jobject _this, jint pf) 1015d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 1016d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1017d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindProgramFragment, con(%p), pf(%p)", con, (RsProgramFragment)pf); 1018d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindProgramFragment((RsProgramFragment)pf); 1019d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 1020d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 10210826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Samsstatic void 10220826a6f90f049bf94fc39fb23ad3a736a14b96ebJason SamsnContextBindProgramVertex(JNIEnv *_env, jobject _this, jint pf) 10230826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams{ 10240826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 10250826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams LOG_API("nContextBindProgramVertex, con(%p), pf(%p)", con, (RsProgramVertex)pf); 10260826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams rsContextBindProgramVertex((RsProgramVertex)pf); 10270826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams} 10280826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 1029d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onoratostatic void 1030d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe OnoratonContextAddDefineI32(JNIEnv *_env, jobject _this, jstring name, jint value) 1031d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{ 1032d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1033d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato const char* n = _env->GetStringUTFChars(name, NULL); 1034d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato LOG_API("nScriptCAddDefineI32, con(%p) name(%s) value(%d)", con, n, value); 1035d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato rsContextSetDefineI32(n, value); 1036d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato _env->ReleaseStringUTFChars(name, n); 1037d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato} 1038d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato 1039d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onoratostatic void 1040d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe OnoratonContextAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) 1041d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{ 1042d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1043d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato const char* n = _env->GetStringUTFChars(name, NULL); 1044d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato LOG_API("nScriptCAddDefineF, con(%p) name(%s) value(%f)", con, n, value); 1045d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato rsContextSetDefineF(n, value); 1046d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato _env->ReleaseStringUTFChars(name, n); 1047d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato} 1048d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato 1049d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato 105002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams// --------------------------------------------------------------------------- 105102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 105202fb2cb531035779a25dbf9595e0628ea40585b0Jason Samsstatic void 105302fb2cb531035779a25dbf9595e0628ea40585b0Jason SamsnSamplerDestroy(JNIEnv *_env, jobject _this, jint s) 105402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{ 105502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 105602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LOG_API("nSamplerDestroy, con(%p), sampler(%p)", con, (RsSampler)s); 105702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams rsSamplerDestroy((RsSampler)s); 105802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams} 105902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 106002fb2cb531035779a25dbf9595e0628ea40585b0Jason Samsstatic void 106102fb2cb531035779a25dbf9595e0628ea40585b0Jason SamsnSamplerBegin(JNIEnv *_env, jobject _this) 106202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{ 106302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 106402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LOG_API("nSamplerBegin, con(%p)", con); 106502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams rsSamplerBegin(); 106602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams} 106702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 106802fb2cb531035779a25dbf9595e0628ea40585b0Jason Samsstatic void 106902fb2cb531035779a25dbf9595e0628ea40585b0Jason SamsnSamplerSet(JNIEnv *_env, jobject _this, jint p, jint v) 107002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{ 107102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 107202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LOG_API("nSamplerSet, con(%p), param(%i), value(%i)", con, p, v); 107302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams rsSamplerSet((RsSamplerParam)p, (RsSamplerValue)v); 107402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams} 107502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 107602fb2cb531035779a25dbf9595e0628ea40585b0Jason Samsstatic jint 107702fb2cb531035779a25dbf9595e0628ea40585b0Jason SamsnSamplerCreate(JNIEnv *_env, jobject _this) 107802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{ 107902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1080bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nSamplerCreate, con(%p)", con); 108102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams return (jint)rsSamplerCreate(); 108202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams} 108302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 1084bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams// --------------------------------------------------------------------------- 1085bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1086bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1087bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightBegin(JNIEnv *_env, jobject _this) 1088bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1089bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1090bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightBegin, con(%p)", con); 1091bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightBegin(); 1092bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1093bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1094bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1095bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightSetIsMono(JNIEnv *_env, jobject _this, jboolean isMono) 1096bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1097bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1098bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightSetIsMono, con(%p), isMono(%i)", con, isMono); 1099bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightSetMonochromatic(isMono); 1100bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1101bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1102bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1103bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightSetIsLocal(JNIEnv *_env, jobject _this, jboolean isLocal) 1104bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1105bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1106bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightSetIsLocal, con(%p), isLocal(%i)", con, isLocal); 1107bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightSetLocal(isLocal); 1108bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1109bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1110bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic jint 1111bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightCreate(JNIEnv *_env, jobject _this) 1112bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1113bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1114bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightCreate, con(%p)", con); 1115bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams return (jint)rsLightCreate(); 1116bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1117bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1118bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1119bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightDestroy(JNIEnv *_env, jobject _this, jint light) 1120bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1121bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1122bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightDestroy, con(%p), light(%p)", con, (RsLight)light); 1123bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightDestroy((RsLight)light); 1124bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1125bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1126bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1127bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightSetColor(JNIEnv *_env, jobject _this, jint light, float r, float g, float b) 1128bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1129bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1130bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightSetColor, con(%p), light(%p), r(%f), g(%f), b(%f)", con, (RsLight)light, r, g, b); 1131bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightSetColor((RsLight)light, r, g, b); 1132bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1133bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1134bba134c8a1dcfe0c8473307a95899a02c9553504Jason Samsstatic void 1135bba134c8a1dcfe0c8473307a95899a02c9553504Jason SamsnLightSetPosition(JNIEnv *_env, jobject _this, jint light, float x, float y, float z) 1136bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{ 1137bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 1138bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams LOG_API("nLightSetPosition, con(%p), light(%p), x(%f), y(%f), z(%f)", con, (RsLight)light, x, y, z); 1139bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams rsLightSetPosition((RsLight)light, x, y, z); 1140bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams} 1141d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1142d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 1143d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 11441bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsstatic void 11451bada8cd6e4f340de93cff4a2439835fc3b1456cJason SamsnSimpleMeshDestroy(JNIEnv *_env, jobject _this, jint s) 11461bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 11471bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 11481bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams LOG_API("nSimpleMeshDestroy, con(%p), SimpleMesh(%p)", con, (RsSimpleMesh)s); 11491bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams rsSimpleMeshDestroy((RsSimpleMesh)s); 11501bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 11511bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 11521bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsstatic jint 11531bada8cd6e4f340de93cff4a2439835fc3b1456cJason SamsnSimpleMeshCreate(JNIEnv *_env, jobject _this, jint batchID, jint indexID, jintArray vtxIDs, jint primID) 11541bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 11551bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 11561bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams jint len = _env->GetArrayLength(vtxIDs); 11571bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams LOG_API("nSimpleMeshCreate, con(%p), batchID(%i), indexID(%i), vtxIDs.len(%i), primID(%i)", 11581bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams con, batchID, indexID, len, primID); 11591bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams jint *ptr = _env->GetIntArrayElements(vtxIDs, NULL); 11601bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams int id = (int)rsSimpleMeshCreate((void *)batchID, (void *)indexID, (void **)ptr, len, primID); 11611bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams _env->ReleaseIntArrayElements(vtxIDs, ptr, 0/*JNI_ABORT*/); 11621bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams return id; 11631bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 11641bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 11651bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsstatic void 11661bada8cd6e4f340de93cff4a2439835fc3b1456cJason SamsnSimpleMeshBindVertex(JNIEnv *_env, jobject _this, jint s, jint alloc, jint slot) 11671bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 11681bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 11691bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams LOG_API("nSimpleMeshBindVertex, con(%p), SimpleMesh(%p), Alloc(%p), slot(%i)", con, (RsSimpleMesh)s, (RsAllocation)alloc, slot); 11701bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams rsSimpleMeshBindVertex((RsSimpleMesh)s, (RsAllocation)alloc, slot); 11711bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 11721bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 11731bada8cd6e4f340de93cff4a2439835fc3b1456cJason Samsstatic void 11741bada8cd6e4f340de93cff4a2439835fc3b1456cJason SamsnSimpleMeshBindIndex(JNIEnv *_env, jobject _this, jint s, jint alloc) 11751bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{ 11761bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 11771bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams LOG_API("nSimpleMeshBindIndex, con(%p), SimpleMesh(%p), Alloc(%p)", con, (RsSimpleMesh)s, (RsAllocation)alloc); 11781bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams rsSimpleMeshBindIndex((RsSimpleMesh)s, (RsAllocation)alloc); 11791bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams} 11801bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 11811bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams// --------------------------------------------------------------------------- 11821bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 1183d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 118494d8e90ad78ee1dbc0efa315117688abd126ae55Jason Samsstatic const char *classPathName = "android/renderscript/RenderScript"; 1185d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1186d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic JNINativeMethod methods[] = { 1187d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"_nInit", "()V", (void*)_nInit }, 1188d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nDeviceCreate", "()I", (void*)nDeviceCreate }, 1189d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nDeviceDestroy", "(I)V", (void*)nDeviceDestroy }, 1190d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextCreate", "(ILandroid/view/Surface;I)I", (void*)nContextCreate }, 1191d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextDestroy", "(I)V", (void*)nContextDestroy }, 11923eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{"nAssignName", "(I[B)V", (void*)nAssignName }, 1193d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 119464676f3c21a07d650069315572811570cbf8f728Jason Sams{"nFileOpen", "([B)I", (void*)nFileOpen }, 119564676f3c21a07d650069315572811570cbf8f728Jason Sams 1196d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementBegin", "()V", (void*)nElementBegin }, 1197d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementAddPredefined", "(I)V", (void*)nElementAddPredefined }, 1198d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementAdd", "(IIII)V", (void*)nElementAdd }, 1199d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementCreate", "()I", (void*)nElementCreate }, 1200d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementGetPredefined", "(I)I", (void*)nElementGetPredefined }, 1201d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementDestroy", "(I)V", (void*)nElementDestroy }, 1202d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1203d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeBegin", "(I)V", (void*)nTypeBegin }, 1204d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeAdd", "(II)V", (void*)nTypeAdd }, 1205d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeCreate", "()I", (void*)nTypeCreate }, 1206d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeDestroy", "(I)V", (void*)nTypeDestroy }, 1207d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1208d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreateTyped", "(I)I", (void*)nAllocationCreateTyped }, 1209d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreatePredefSized", "(II)I", (void*)nAllocationCreatePredefSized }, 1210d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreateSized", "(II)I", (void*)nAllocationCreateSized }, 1211ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams{"nAllocationCreateFromBitmap", "(IZLandroid/graphics/Bitmap;)I", (void*)nAllocationCreateFromBitmap }, 1212b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams{"nAllocationCreateFromBitmapBoxed","(IZLandroid/graphics/Bitmap;)I", (void*)nAllocationCreateFromBitmapBoxed }, 1213d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationUploadToTexture", "(II)V", (void*)nAllocationUploadToTexture }, 1214d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationDestroy", "(I)V", (void*)nAllocationDestroy }, 1215d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationData", "(I[I)V", (void*)nAllocationData_i }, 1216d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationData", "(I[F)V", (void*)nAllocationData_f }, 1217d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData1D", "(III[I)V", (void*)nAllocationSubData1D_i }, 1218d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData1D", "(III[F)V", (void*)nAllocationSubData1D_f }, 1219d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData2D", "(IIIII[I)V", (void*)nAllocationSubData2D_i }, 1220d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData2D", "(IIIII[F)V", (void*)nAllocationSubData2D_f }, 122140a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams{"nAllocationRead", "(I[I)V", (void*)nAllocationRead_i }, 122240a29e8e28772b37ab0f9fe9708ecdcba24abb84Jason Sams{"nAllocationRead", "(I[F)V", (void*)nAllocationRead_f }, 1223d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1224d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshDestroy", "(I)V", (void*)nTriangleMeshDestroy }, 1225d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshBegin", "(II)V", (void*)nTriangleMeshBegin }, 1226d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XY", "(FF)V", (void*)nTriangleMeshAddVertex_XY }, 1227d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XYZ", "(FFF)V", (void*)nTriangleMeshAddVertex_XYZ }, 1228d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XY_ST", "(FFFF)V", (void*)nTriangleMeshAddVertex_XY_ST }, 1229d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XYZ_ST", "(FFFFF)V", (void*)nTriangleMeshAddVertex_XYZ_ST }, 12300826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams{"nTriangleMeshAddVertex_XYZ_ST_NORM", "(FFFFFFFF)V", (void*)nTriangleMeshAddVertex_XYZ_ST_NORM }, 1231d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddTriangle", "(III)V", (void*)nTriangleMeshAddTriangle }, 1232d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshCreate", "()I", (void*)nTriangleMeshCreate }, 1233d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1234d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DDestroy", "(I)V", (void*)nAdapter1DDestroy }, 1235d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DBindAllocation", "(II)V", (void*)nAdapter1DBindAllocation }, 1236d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DSetConstraint", "(III)V", (void*)nAdapter1DSetConstraint }, 1237d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DData", "(I[I)V", (void*)nAdapter1DData_i }, 1238d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DData", "(I[F)V", (void*)nAdapter1DData_f }, 1239bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter1DSubData", "(III[I)V", (void*)nAdapter1DSubData_i }, 1240d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DSubData", "(III[F)V", (void*)nAdapter1DSubData_f }, 1241d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DCreate", "()I", (void*)nAdapter1DCreate }, 1242d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1243bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DDestroy", "(I)V", (void*)nAdapter2DDestroy }, 1244bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DBindAllocation", "(II)V", (void*)nAdapter2DBindAllocation }, 1245bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DSetConstraint", "(III)V", (void*)nAdapter2DSetConstraint }, 1246bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DData", "(I[I)V", (void*)nAdapter2DData_i }, 1247bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DData", "(I[F)V", (void*)nAdapter2DData_f }, 1248bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DSubData", "(IIIII[I)V", (void*)nAdapter2DSubData_i }, 1249bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DSubData", "(IIIII[F)V", (void*)nAdapter2DSubData_f }, 1250bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams{"nAdapter2DCreate", "()I", (void*)nAdapter2DCreate }, 1251bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 1252d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptDestroy", "(I)V", (void*)nScriptDestroy }, 1253d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptBindAllocation", "(III)V", (void*)nScriptBindAllocation }, 125422534176fb5c1257130ef4ee589739ca42766a32Jason Sams{"nScriptSetClearColor", "(IFFFF)V", (void*)nScriptSetClearColor }, 125522534176fb5c1257130ef4ee589739ca42766a32Jason Sams{"nScriptSetClearDepth", "(IF)V", (void*)nScriptSetClearDepth }, 125622534176fb5c1257130ef4ee589739ca42766a32Jason Sams{"nScriptSetClearStencil", "(II)V", (void*)nScriptSetClearStencil }, 125722534176fb5c1257130ef4ee589739ca42766a32Jason Sams{"nScriptSetTimeZone", "(I[B)V", (void*)nScriptSetTimeZone }, 125822534176fb5c1257130ef4ee589739ca42766a32Jason Sams 1259d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCBegin", "()V", (void*)nScriptCBegin }, 1260d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCAddType", "(I)V", (void*)nScriptCAddType }, 1261d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetRoot", "(Z)V", (void*)nScriptCSetRoot }, 126243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich{"nScriptCSetScript", "([BII)V", (void*)nScriptCSetScript }, 1263d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCCreate", "()I", (void*)nScriptCCreate }, 1264d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{"nScriptCAddDefineI32", "(Ljava/lang/String;I)V", (void*)nScriptCAddDefineI32 }, 1265d7b3774da62d3c70cc7e8cf549967a1c823501e6Joe Onorato{"nScriptCAddDefineF", "(Ljava/lang/String;F)V", (void*)nScriptCAddDefineF }, 1266d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1267d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreBegin", "(II)V", (void*)nProgramFragmentStoreBegin }, 1268d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDepthFunc", "(I)V", (void*)nProgramFragmentStoreDepthFunc }, 1269d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDepthMask", "(Z)V", (void*)nProgramFragmentStoreDepthMask }, 1270d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreColorMask", "(ZZZZ)V", (void*)nProgramFragmentStoreColorMask }, 1271d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreBlendFunc", "(II)V", (void*)nProgramFragmentStoreBlendFunc }, 1272d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDither", "(Z)V", (void*)nProgramFragmentStoreDither }, 1273d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreCreate", "()I", (void*)nProgramFragmentStoreCreate }, 12743eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{"nProgramFragmentStoreDestroy", "(I)V", (void*)nProgramFragmentStoreDestroy }, 1275d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1276d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBegin", "(II)V", (void*)nProgramFragmentBegin }, 1277d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBindTexture", "(III)V", (void*)nProgramFragmentBindTexture }, 1278d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBindSampler", "(III)V", (void*)nProgramFragmentBindSampler }, 1279d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetType", "(II)V", (void*)nProgramFragmentSetType }, 1280d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetEnvMode", "(II)V", (void*)nProgramFragmentSetEnvMode }, 1281d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetTexEnable", "(IZ)V", (void*)nProgramFragmentSetTexEnable }, 1282d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentCreate", "()I", (void*)nProgramFragmentCreate }, 12833eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams{"nProgramFragmentDestroy", "(I)V", (void*)nProgramFragmentDestroy }, 1284d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 12851fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{"nProgramVertexDestroy", "(I)V", (void*)nProgramVertexDestroy }, 12869bee51c42eb8c3daffe7d6fa483edbb1689b94d2Jason Sams{"nProgramVertexBindAllocation", "(II)V", (void*)nProgramVertexBindAllocation }, 12871fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{"nProgramVertexBegin", "(II)V", (void*)nProgramVertexBegin }, 12881fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{"nProgramVertexSetTextureMatrixEnable", "(Z)V", (void*)nProgramVertexSetTextureMatrixEnable }, 1289ee41112e1539de95596600fd2c6dada5d275217fJason Sams{"nProgramVertexAddLight", "(I)V", (void*)nProgramVertexAddLight }, 12901fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams{"nProgramVertexCreate", "()I", (void*)nProgramVertexCreate }, 12911fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 1292bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightBegin", "()V", (void*)nLightBegin }, 1293bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightSetIsMono", "(Z)V", (void*)nLightSetIsMono }, 1294bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightSetIsLocal", "(Z)V", (void*)nLightSetIsLocal }, 1295bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightCreate", "()I", (void*)nLightCreate }, 1296bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightDestroy", "(I)V", (void*)nLightDestroy }, 1297bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightSetColor", "(IFFF)V", (void*)nLightSetColor }, 1298bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams{"nLightSetPosition", "(IFFF)V", (void*)nLightSetPosition }, 1299bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 1300d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindRootScript", "(I)V", (void*)nContextBindRootScript }, 1301d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindProgramFragmentStore","(I)V", (void*)nContextBindProgramFragmentStore }, 1302d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindProgramFragment", "(I)V", (void*)nContextBindProgramFragment }, 13030826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams{"nContextBindProgramVertex", "(I)V", (void*)nContextBindProgramVertex }, 1304d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 130502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{"nSamplerDestroy", "(I)V", (void*)nSamplerDestroy }, 130602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{"nSamplerBegin", "()V", (void*)nSamplerBegin }, 130702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{"nSamplerSet", "(II)V", (void*)nSamplerSet }, 130802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams{"nSamplerCreate", "()I", (void*)nSamplerCreate }, 130902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 13101bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{"nSimpleMeshDestroy", "(I)V", (void*)nSimpleMeshDestroy }, 13111bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{"nSimpleMeshCreate", "(II[II)I", (void*)nSimpleMeshCreate }, 13121bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{"nSimpleMeshBindVertex", "(III)V", (void*)nSimpleMeshBindVertex }, 13131bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams{"nSimpleMeshBindIndex", "(II)V", (void*)nSimpleMeshBindIndex }, 13141bada8cd6e4f340de93cff4a2439835fc3b1456cJason Sams 1315d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams}; 1316d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1317d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic int registerFuncs(JNIEnv *_env) 1318d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 1319d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return android::AndroidRuntime::registerNativeMethods( 1320d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env, classPathName, methods, NELEM(methods)); 1321d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 1322d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1323d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 1324d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1325d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsjint JNI_OnLoad(JavaVM* vm, void* reserved) 1326d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 1327d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams JNIEnv* env = NULL; 1328d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint result = -1; 1329d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1330d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) { 1331d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("ERROR: GetEnv failed\n"); 1332d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto bail; 1333d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 1334d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams assert(env != NULL); 1335d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1336d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (registerFuncs(env) < 0) { 1337d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("ERROR: MediaPlayer native registration failed\n"); 1338d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto bail; 1339d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 1340d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1341d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams /* success -- return valid version number */ 1342d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams result = JNI_VERSION_1_4; 1343d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 1344d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsbail: 1345d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return result; 1346d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 1347