android_renderscript_RenderScript.cpp revision d19f10d43aa400e1183aa21a97099d02074131a2
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 17d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <stdlib.h> 18d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <stdio.h> 19d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <fcntl.h> 20d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <unistd.h> 21d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <math.h> 22d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 23d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <utils/misc.h> 24d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <utils/Log.h> 25d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 26d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <ui/EGLNativeWindowSurface.h> 27d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include <ui/Surface.h> 28d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 29d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "jni.h" 30d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "JNIHelp.h" 31d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "android_runtime/AndroidRuntime.h" 32d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 33d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "../RenderScript.h" 34d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#include "../RenderScriptEnv.h" 35d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 36d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams//#define LOG_API LOGE 37d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams#define LOG_API(...) 38d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 39d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsusing namespace android; 40d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 41d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsextern "C" void test_script(void *con, const rsc_FunctionTable *ft, uint32_t launchID); 42d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 43d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsvoid test_script(void *con, const rsc_FunctionTable *ft, uint32_t launchID) 44d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 45d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int count = ft->loadEnvI32(con, 0, 1); 46d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int touch = ft->loadEnvI32(con, 0, 2); 47d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int x = ft->loadEnvI32(con, 0, 3); 48d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int y = 480 - ft->loadEnvI32(con, 0, 4); 49d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 50d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int rate = 4; 51d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int maxLife = (count / rate) - 1; 52d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int lifeShift = 0; 53d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams { 54d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int life = maxLife; 55d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams while (life > 255) { 56d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams life >>= 1; 57d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams lifeShift ++; 58d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 59d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 60d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 61d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (touch) { 62d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int newPart = ft->loadEnvI32(con, 2, 0); 63d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams for (int ct2=0; ct2<rate; ct2++) { 64d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int dx = ft->rand(con, 0x10000) - 0x8000; 65d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int dy = ft->rand(con, 0x10000) - 0x8000; 66d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 67d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int idx = newPart * 5 + 1; 68d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, idx, dx); 69d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, idx + 1, dy); 70d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, idx + 2, maxLife); 71d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, idx + 3, x << 16); 72d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, idx + 4, y << 16); 73d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 74d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams newPart++; 75d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (newPart >= count) { 76d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams newPart = 0; 77d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 78d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 79d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->storeEnvI32(con, 2, 0, newPart); 80d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 81d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 82d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams // Emulate intrinsic perf... 83d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int32_t * partPtr = (int32_t *)ft->loadEnvVp(con, 2, 4); 84d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int32_t * vertPtr = (int32_t *)ft->loadEnvVp(con, 1, 0); 85d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 86d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int drawCount = 0; 87d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams for (int ct=0; ct < count; ct++) { 88d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //int srcIdx = ct * 5 + 1; 89d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //int dstIdx = ct * 3 * 3; 90d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 91d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int dx = partPtr[0]; //ft->loadEnvI32(con, 2, srcIdx); 92d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int dy = partPtr[1]; //ft->loadEnvI32(con, 2, srcIdx + 1); 93d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int life = partPtr[2]; //ft->loadEnvI32(con, 2, srcIdx + 2); 94d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int posx = partPtr[3]; //ft->loadEnvI32(con, 2, srcIdx + 3); 95d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams int posy = partPtr[4]; //ft->loadEnvI32(con, 2, srcIdx + 4); 96d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 97d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (life) { 98d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (posy > 0) { 99d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams uint32_t c = 0xffafcf | ((life >> lifeShift) << 24); 100d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 101d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ((uint32_t *)vertPtr)[0] = c; //ft->storeEnvU32(con, 1, dstIdx, c); 102d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[1] = posx; //ft->storeEnvI32(con, 1, dstIdx + 1, posx); 103d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[2] = posy; //ft->storeEnvI32(con, 1, dstIdx + 2, posy); 104d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 105d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ((uint32_t *)vertPtr)[3] = c; //ft->storeEnvU32(con, 1, dstIdx + 3, c); 106d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[4] = posx + 0x10000; //ft->storeEnvI32(con, 1, dstIdx + 4, posx + 0x10000); 107d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[5] = posy + dy * 4; //ft->storeEnvI32(con, 1, dstIdx + 5, posy); 108d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 109d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ((uint32_t *)vertPtr)[6] = c; //ft->storeEnvU32(con, 1, dstIdx + 6, c); 110d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[7] = posx - 0x10000; //ft->storeEnvI32(con, 1, dstIdx + 7, posx + 0x0800); 111d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr[8] = posy + dy * 4; //ft->storeEnvI32(con, 1, dstIdx + 8, posy + 0x10000); 112d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 113d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams vertPtr += 9; 114d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams drawCount ++; 115d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } else { 116d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (dy < 0) { 117d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams dy = (-dy) >> 1; 118d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 119d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 120d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 121d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams posx += dx; 122d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams posy += dy; 123d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams dy -= 0x400; 124d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams life --; 125d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 126d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr[0] = dx; //ft->storeEnvI32(con, 2, srcIdx, dx); 127d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr[1] = dy; //ft->storeEnvI32(con, 2, srcIdx + 1, dy); 128d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr[2] = life; //ft->storeEnvI32(con, 2, srcIdx + 2, life); 129d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr[3] = posx; //ft->storeEnvI32(con, 2, srcIdx + 3, posx); 130d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr[4] = posy; //ft->storeEnvI32(con, 2, srcIdx + 4, posy); 131d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 132d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 133d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams partPtr += 5; 134d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 135d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 136d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams ft->drawTriangleArray(con, (RsAllocation)ft->loadEnvI32(con, 0, 5), drawCount); 137d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 138d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 139d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 140d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 141d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 142d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void doThrow(JNIEnv* env, const char* exc, const char* msg = NULL) 143d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 144d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jclass npeClazz = env->FindClass(exc); 145d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams env->ThrowNew(npeClazz, msg); 146d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 147d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 148d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jfieldID gContextId; 149d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 150d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void _nInit(JNIEnv *_env, jclass _this) 151d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 152d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("_nInit"); 153d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams gContextId = _env->GetFieldID(_this, "mContext", "I"); 154d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 155d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 156d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 157d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 158d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 159d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 160d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnDeviceCreate(JNIEnv *_env, jobject _this) 161d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 162d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nDeviceCreate"); 163d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsDeviceCreate(); 164d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 165d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 166d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 167d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnDeviceDestroy(JNIEnv *_env, jobject _this, jint dev) 168d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 169d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nDeviceDestroy"); 170d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return rsDeviceDestroy((RsDevice)dev); 171d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 172d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 173d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 174d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextCreate(JNIEnv *_env, jobject _this, jint dev, jobject wnd, jint ver) 175d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 176d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextCreate"); 177d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 178d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (wnd == NULL) { 179d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams not_valid_surface: 180d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams doThrow(_env, "java/lang/IllegalArgumentException", 181d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams "Make sure the SurfaceView or associated SurfaceHolder has a valid Surface"); 182d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return 0; 183d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 184d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jclass surface_class = _env->FindClass("android/view/Surface"); 185d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfieldID surfaceFieldID = _env->GetFieldID(surface_class, "mSurface", "I"); 186d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams Surface * window = (Surface*)_env->GetIntField(wnd, surfaceFieldID); 187d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (window == NULL) 188d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto not_valid_surface; 189d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 190d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("nContextCreate 5"); 191d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsContextCreate((RsDevice)dev, window, ver); 192d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 193d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 194d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 195d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextDestroy(JNIEnv *_env, jobject _this, jint con) 196d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 197d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextDestroy, con(%p)", (RsContext)con); 198d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return rsContextDestroy((RsContext)con); 199d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 200d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 201d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 202d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 203d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementBegin(JNIEnv *_env, jobject _this) 204d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 205d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 206d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementBegin, con(%p)", con); 207d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementBegin(); 208d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 209d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 210d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 211d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementAddPredefined(JNIEnv *_env, jobject _this, jint predef) 212d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 213d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 214d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementAddPredefined, con(%p), predef(%i)", con, predef); 215d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementAddPredefined((RsElementPredefined)predef); 216d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 217d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 218d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 219d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementAdd(JNIEnv *_env, jobject _this, jint kind, jint type, jint norm, jint bits) 220d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 221d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 222d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementAdd, con(%p), kind(%i), type(%i), norm(%i), bits(%i)", con, kind, type, norm, bits); 223d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementAdd((RsDataKind)kind, (RsDataType)type, norm != 0, (size_t)bits); 224d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 225d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 226d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 227d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementCreate(JNIEnv *_env, jobject _this) 228d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 229d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 230d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementCreate, con(%p)", con); 231d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsElementCreate(); 232d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 233d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 234d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 235d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementGetPredefined(JNIEnv *_env, jobject _this, jint predef) 236d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 237d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 238d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementGetPredefined, con(%p) predef(%i)", con, predef); 239d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsElementGetPredefined((RsElementPredefined)predef); 240d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 241d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 242d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 243d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnElementDestroy(JNIEnv *_env, jobject _this, jint e) 244d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 245d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 246d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nElementDestroy, con(%p) e(%p)", con, (RsElement)e); 247d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsElementDestroy((RsElement)e); 248d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 249d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 250d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 251d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 252d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 253d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeBegin(JNIEnv *_env, jobject _this, jint eID) 254d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 255d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 256d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeBegin, con(%p) e(%p)", con, (RsElement)eID); 257d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeBegin((RsElement)eID); 258d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 259d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 260d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 261d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeAdd(JNIEnv *_env, jobject _this, jint dim, jint val) 262d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 263d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 264d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeAdd, con(%p) dim(%i), val(%i)", con, dim, val); 265d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeAdd((RsDimension)dim, val); 266d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 267d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 268d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 269d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeCreate(JNIEnv *_env, jobject _this) 270d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 271d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 272d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeCreate, con(%p)", con); 273d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsTypeCreate(); 274d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 275d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 276d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 277d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTypeDestroy(JNIEnv *_env, jobject _this, jint eID) 278d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 279d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 280d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTypeDestroy, con(%p), t(%p)", con, (RsType)eID); 281d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTypeDestroy((RsType)eID); 282d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 283d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 284d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 285d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 286d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 287d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreateTyped(JNIEnv *_env, jobject _this, jint e) 288d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 289d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 290d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreateTyped, con(%p), e(%p)", con, (RsElement)e); 291d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreateTyped((RsElement)e); 292d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 293d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 294d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 295d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreatePredefSized(JNIEnv *_env, jobject _this, jint predef, jint count) 296d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 297d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 298d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreatePredefSized, con(%p), predef(%i), count(%i)", con, predef, count); 299d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreatePredefSized((RsElementPredefined)predef, count); 300d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 301d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 302d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 303d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationCreateSized(JNIEnv *_env, jobject _this, jint e, jint count) 304d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 305d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 306d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationCreateSized, con(%p), e(%p), count(%i)", con, (RsElement)e, count); 307d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsAllocationCreateSized((RsElement)e, count); 308d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 309d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 310d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 311d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAllocationUploadToTexture(JNIEnv *_env, jobject _this, jint a, jint mip) 312d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 313d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 314d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAllocationUploadToTexture, con(%p), a(%p), mip(%i)", con, (RsAllocation)a, mip); 315d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAllocationUploadToTexture((RsAllocation)a, mip); 316d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 317d19f10d43aa400e1183aa21a97099d02074131a2Jason 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 392d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 393d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 394d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 395d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 396d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 397d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshDestroy(JNIEnv *_env, jobject _this, jint tm) 398d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 399d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 400d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshDestroy, con(%p), tm(%p)", con, (RsAllocation)tm); 401d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshDestroy((RsTriangleMesh)tm); 402d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 403d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 404d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 405d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshBegin(JNIEnv *_env, jobject _this, jint v, jint i) 406d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 407d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 408d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshBegin, con(%p), vertex(%p), index(%p)", con, (RsElement)v, (RsElement)i); 409d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshBegin((RsElement)v, (RsElement)i); 410d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 411d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 412d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 413d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XY(JNIEnv *_env, jobject _this, jfloat x, jfloat y) 414d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 415d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {x, y}; 416d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 417d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XY, con(%p), x(%f), y(%f)", con, x, y); 418d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 419d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 420d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 421d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 422d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XYZ(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) 423d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 424d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {x, y, z}; 425d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 426d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XYZ, con(%p), x(%f), y(%f), z(%f)", con, x, y, z); 427d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 428d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 429d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 430d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 431d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XY_ST(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat s, jfloat t) 432d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 433d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {s, t, x, y}; 434d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 435d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XY_ST, con(%p), x(%f), y(%f), s(%f), t(%f)", con, x, y, s, t); 436d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 437d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 438d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 439d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 440d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddVertex_XYZ_ST(JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z, jfloat s, jfloat t) 441d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 442d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams float v[] = {s, t, x, y, z}; 443d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 444d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddVertex_XYZ_ST, con(%p), x(%f), y(%f), z(%f), s(%f), t(%f)", con, x, y, z, s, t); 445d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddVertex(v); 446d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 447d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 448d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 449d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshAddTriangle(JNIEnv *_env, jobject _this, jint i1, jint i2, jint i3) 450d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 451d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 452d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshAddTriangle, con(%p), i1(%i), i2(%i), i3(%i)", con, i1, i2, i3); 453d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsTriangleMeshAddTriangle(i1, i2, i3); 454d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 455d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 456d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 457d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnTriangleMeshCreate(JNIEnv *_env, jobject _this) 458d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 459d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 460d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nTriangleMeshCreate, con(%p)", con); 461d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint) rsTriangleMeshCreate(); 462d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 463d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 464d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 465d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 466d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 467d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DDestroy(JNIEnv *_env, jobject _this, jint adapter) 468d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 469d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 470d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DDestroy, con(%p), adapter(%p)", con, (RsAdapter1D)adapter); 471d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DDestroy((RsAdapter1D)adapter); 472d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 473d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 474d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 475d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DBindAllocation(JNIEnv *_env, jobject _this, jint adapter, jint alloc) 476d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 477d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 478d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DBindAllocation, con(%p), adapter(%p), alloc(%p)", con, (RsAdapter1D)adapter, (RsAllocation)alloc); 479d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DBindAllocation((RsAdapter1D)adapter, (RsAllocation)alloc); 480d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 481d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 482d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 483d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSetConstraint(JNIEnv *_env, jobject _this, jint adapter, jint dim, jint value) 484d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 485d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 486d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSetConstraint, con(%p), adapter(%p), dim(%i), value(%i)", con, (RsAdapter1D)adapter, dim, value); 487d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSetConstraint((RsAdapter1D)adapter, (RsDimension)dim, value); 488d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 489d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 490d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 491d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DData_i(JNIEnv *_env, jobject _this, jint adapter, jintArray data) 492d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 493d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 494d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 495d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DData_i, con(%p), adapter(%p), len(%i)", con, (RsAdapter1D)adapter, len); 496d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 497d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DData((RsAdapter1D)adapter, ptr); 498d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 499d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 500d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 501d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 502d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSubData_i(JNIEnv *_env, jobject _this, jint adapter, jint offset, jint count, jintArray data) 503d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 504d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 505d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 506d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSubData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAdapter1D)adapter, offset, count, len); 507d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint *ptr = _env->GetIntArrayElements(data, NULL); 508d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSubData((RsAdapter1D)adapter, offset, count, ptr); 509d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseIntArrayElements(data, ptr, 0/*JNI_ABORT*/); 510d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 511d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 512d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 513d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DData_f(JNIEnv *_env, jobject _this, jint adapter, jfloatArray data) 514d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 515d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 516d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 517d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DData_f, con(%p), adapter(%p), len(%i)", con, (RsAdapter1D)adapter, len); 518d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 519d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DData((RsAdapter1D)adapter, ptr); 520d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 521d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 522d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 523d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 524d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DSubData_f(JNIEnv *_env, jobject _this, jint adapter, jint offset, jint count, jfloatArray data) 525d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 526d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 527d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint len = _env->GetArrayLength(data); 528d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DSubData_f, con(%p), adapter(%p), offset(%i), count(%i), len(%i)", con, (RsAdapter1D)adapter, offset, count, len); 529d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jfloat *ptr = _env->GetFloatArrayElements(data, NULL); 530d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsAdapter1DSubData((RsAdapter1D)adapter, offset, count, ptr); 531d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env->ReleaseFloatArrayElements(data, ptr, 0/*JNI_ABORT*/); 532d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 533d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 534d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 535d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnAdapter1DCreate(JNIEnv *_env, jobject _this) 536d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 537d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 538d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nAdapter1DCreate, con(%p)", con); 539d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsAdapter1DCreate(); 540d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 541d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 542d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// ----------------------------------- 543d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 544d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 545d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptDestroy(JNIEnv *_env, jobject _this, jint script) 546d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 547d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 548d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptDestroy, con(%p), script(%p)", con, (RsScript)script); 549d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptDestroy((RsScript)script); 550d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 551d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 552d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 553d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptBindAllocation(JNIEnv *_env, jobject _this, jint script, jint alloc, jint slot) 554d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 555d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 556d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptBindAllocation, con(%p), script(%p), alloc(%p), slot(%i)", con, (RsScript)script, (RsAllocation)alloc, slot); 557d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptBindAllocation((RsScript)script, (RsAllocation)alloc, slot); 558d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 559d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 560d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 561d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCBegin(JNIEnv *_env, jobject _this) 562d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 563d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 564d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCBegin, con(%p)", con); 565d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCBegin(); 566d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 567d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 568d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 569d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetClearColor(JNIEnv *_env, jobject _this, jfloat r, jfloat g, jfloat b, jfloat a) 570d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 571d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 572d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCSetClearColor, con(%p), r(%f), g(%f), b(%f), a(%f)", con, r, g, b, a); 573d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetClearColor(r, g, b, a); 574d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 575d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 576d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 577d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetClearDepth(JNIEnv *_env, jobject _this, jfloat d) 578d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 579d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 580d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCSetClearColor, con(%p), depth(%f)", con, d); 581d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetClearDepth(d); 582d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 583d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 584d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 585d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetClearStencil(JNIEnv *_env, jobject _this, jint stencil) 586d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 587d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 588d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCSetClearStencil, con(%p), stencil(%i)", con, stencil); 589d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetClearStencil(stencil); 590d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 591d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 592d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 593d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCAddType(JNIEnv *_env, jobject _this, jint type) 594d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 595d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 596d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCAddType, con(%p), type(%p)", con, (RsType)type); 597d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCAddType((RsType)type); 598d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 599d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 600d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 601d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetRoot(JNIEnv *_env, jobject _this, jboolean isRoot) 602d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 603d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 604d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCSetRoot, con(%p), isRoot(%i)", con, isRoot); 605d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetRoot(isRoot); 606d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 607d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 608d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 609d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCSetScript(JNIEnv *_env, jobject _this, jboolean isRoot) 610d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 611d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 612d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("!!! nScriptCSetScript, con(%p)", con); 613d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams //nScriptCSetScript(isRoot); 614d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsScriptCSetScript((void *)test_script); 615d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 616d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 617d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 618d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnScriptCCreate(JNIEnv *_env, jobject _this) 619d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 620d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 621d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nScriptCCreate, con(%p)", con); 622d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsScriptCCreate(); 623d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 624d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 625d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 626d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 627d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 628d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreBegin(JNIEnv *_env, jobject _this, jint in, jint out) 629d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 630d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 631d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out); 632d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreBegin((RsElement)in, (RsElement)out); 633d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 634d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 635d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 636d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDepthFunc(JNIEnv *_env, jobject _this, jint func) 637d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 638d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 639d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDepthFunc, con(%p), func(%i)", con, func); 640d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDepthFunc((RsDepthFunc)func); 641d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 642d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 643d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 644d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDepthMask(JNIEnv *_env, jobject _this, jboolean enable) 645d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 646d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 647d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDepthMask, con(%p), enable(%i)", con, enable); 648d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDepthMask(enable); 649d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 650d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 651d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 652d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreColorMask(JNIEnv *_env, jobject _this, jboolean r, jboolean g, jboolean b, jboolean a) 653d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 654d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 655d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreColorMask, con(%p), r(%i), g(%i), b(%i), a(%i)", con, r, g, b, a); 656d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreColorMask(r, g, b, a); 657d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 658d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 659d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 660d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreBlendFunc(JNIEnv *_env, jobject _this, int src, int dst) 661d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 662d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 663d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreBlendFunc, con(%p), src(%i), dst(%i)", con, src, dst); 664d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreBlendFunc((RsBlendSrcFunc)src, (RsBlendDstFunc)dst); 665d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 666d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 667d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 668d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreDither(JNIEnv *_env, jobject _this, jboolean enable) 669d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 670d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 671d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreDither, con(%p), enable(%i)", con, enable); 672d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentStoreDither(enable); 673d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 674d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 675d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 676d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentStoreCreate(JNIEnv *_env, jobject _this) 677d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 678d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 679d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentStoreCreate, con(%p)", con); 680d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsProgramFragmentStoreCreate(); 681d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 682d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 683d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 684d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 685d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 686d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBegin(JNIEnv *_env, jobject _this, jint in, jint out) 687d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 688d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 689d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out); 690d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBegin((RsElement)in, (RsElement)out); 691d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 692d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 693d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 694d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBindTexture(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) 695d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 696d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 697d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBindTexture, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsAllocation)a); 698d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBindTexture((RsProgramFragment)vpf, slot, (RsAllocation)a); 699d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 700d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 701d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 702d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentBindSampler(JNIEnv *_env, jobject _this, jint vpf, jint slot, jint a) 703d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 704d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 705d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentBindSampler, con(%p), vpf(%p), slot(%i), a(%p)", con, (RsProgramFragment)vpf, slot, (RsSampler)a); 706d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentBindSampler((RsProgramFragment)vpf, slot, (RsSampler)a); 707d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 708d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 709d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 710d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetType(JNIEnv *_env, jobject _this, jint slot, jint vt) 711d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 712d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 713d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetType, con(%p), slot(%i), vt(%p)", con, slot, (RsType)vt); 714d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetType(slot, (RsType)vt); 715d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 716d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 717d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 718d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetEnvMode(JNIEnv *_env, jobject _this, jint slot, jint env) 719d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 720d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 721d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetEnvMode, con(%p), slot(%i), vt(%i)", con, slot, env); 722d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetEnvMode(slot, (RsTexEnvMode)env); 723d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 724d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 725d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 726d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentSetTexEnable(JNIEnv *_env, jobject _this, jint slot, jboolean enable) 727d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 728d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 729d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentSetTexEnable, con(%p), slot(%i), enable(%i)", con, slot, enable); 730d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsProgramFragmentSetTexEnable(slot, enable); 731d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 732d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 733d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic jint 734d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnProgramFragmentCreate(JNIEnv *_env, jobject _this, jint slot, jboolean enable) 735d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 736d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 737d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nProgramFragmentCreate, con(%p)", con); 738d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return (jint)rsProgramFragmentCreate(); 739d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 740d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 741d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 742d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 743d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 744d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 745d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindRootScript(JNIEnv *_env, jobject _this, jint script) 746d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 747d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 748d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindRootScript, con(%p), script(%p)", con, (RsScript)script); 749d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindRootScript((RsScript)script); 750d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 751d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 752d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 753d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindSampler(JNIEnv *_env, jobject _this, jint sampler, jint slot) 754d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 755d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 756d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindSampler, con(%p), sampler(%p), slot(%i)", con, (RsSampler)sampler, slot); 757d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindSampler(slot, (RsSampler)sampler); 758d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 759d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 760d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 761d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindProgramFragmentStore(JNIEnv *_env, jobject _this, jint pfs) 762d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 763d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 764d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindProgramFragmentStore, con(%p), pfs(%p)", con, (RsProgramFragmentStore)pfs); 765d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindProgramFragmentStore((RsProgramFragmentStore)pfs); 766d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 767d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 768d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic void 769d19f10d43aa400e1183aa21a97099d02074131a2Jason SamsnContextBindProgramFragment(JNIEnv *_env, jobject _this, jint pf) 770d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 771d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); 772d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOG_API("nContextBindProgramFragment, con(%p), pf(%p)", con, (RsProgramFragment)pf); 773d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams rsContextBindProgramFragment((RsProgramFragment)pf); 774d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 775d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 776d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 777d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 778d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 779d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 780d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic const char *classPathName = "com/android/calc/RenderScript"; 781d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 782d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic JNINativeMethod methods[] = { 783d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"_nInit", "()V", (void*)_nInit }, 784d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nDeviceCreate", "()I", (void*)nDeviceCreate }, 785d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nDeviceDestroy", "(I)V", (void*)nDeviceDestroy }, 786d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextCreate", "(ILandroid/view/Surface;I)I", (void*)nContextCreate }, 787d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextDestroy", "(I)V", (void*)nContextDestroy }, 788d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 789d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementBegin", "()V", (void*)nElementBegin }, 790d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementAddPredefined", "(I)V", (void*)nElementAddPredefined }, 791d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementAdd", "(IIII)V", (void*)nElementAdd }, 792d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementCreate", "()I", (void*)nElementCreate }, 793d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementGetPredefined", "(I)I", (void*)nElementGetPredefined }, 794d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nElementDestroy", "(I)V", (void*)nElementDestroy }, 795d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 796d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeBegin", "(I)V", (void*)nTypeBegin }, 797d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeAdd", "(II)V", (void*)nTypeAdd }, 798d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeCreate", "()I", (void*)nTypeCreate }, 799d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTypeDestroy", "(I)V", (void*)nTypeDestroy }, 800d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 801d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreateTyped", "(I)I", (void*)nAllocationCreateTyped }, 802d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreatePredefSized", "(II)I", (void*)nAllocationCreatePredefSized }, 803d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationCreateSized", "(II)I", (void*)nAllocationCreateSized }, 804d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams//{"nAllocationCreateFromBitmap", "(I)V", (void*)nAllocationCreateFromBitmap }, 805d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationUploadToTexture", "(II)V", (void*)nAllocationUploadToTexture }, 806d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationDestroy", "(I)V", (void*)nAllocationDestroy }, 807d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationData", "(I[I)V", (void*)nAllocationData_i }, 808d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationData", "(I[F)V", (void*)nAllocationData_f }, 809d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData1D", "(III[I)V", (void*)nAllocationSubData1D_i }, 810d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData1D", "(III[F)V", (void*)nAllocationSubData1D_f }, 811d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData2D", "(IIIII[I)V", (void*)nAllocationSubData2D_i }, 812d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAllocationSubData2D", "(IIIII[F)V", (void*)nAllocationSubData2D_f }, 813d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 814d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshDestroy", "(I)V", (void*)nTriangleMeshDestroy }, 815d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshBegin", "(II)V", (void*)nTriangleMeshBegin }, 816d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XY", "(FF)V", (void*)nTriangleMeshAddVertex_XY }, 817d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XYZ", "(FFF)V", (void*)nTriangleMeshAddVertex_XYZ }, 818d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XY_ST", "(FFFF)V", (void*)nTriangleMeshAddVertex_XY_ST }, 819d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddVertex_XYZ_ST", "(FFFFF)V", (void*)nTriangleMeshAddVertex_XYZ_ST }, 820d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshAddTriangle", "(III)V", (void*)nTriangleMeshAddTriangle }, 821d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nTriangleMeshCreate", "()I", (void*)nTriangleMeshCreate }, 822d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 823d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DDestroy", "(I)V", (void*)nAdapter1DDestroy }, 824d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DBindAllocation", "(II)V", (void*)nAdapter1DBindAllocation }, 825d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DSetConstraint", "(III)V", (void*)nAdapter1DSetConstraint }, 826d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DData", "(I[I)V", (void*)nAdapter1DData_i }, 827d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DSubData", "(III[I)V", (void*)nAdapter1DSubData_i }, 828d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DData", "(I[F)V", (void*)nAdapter1DData_f }, 829d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DSubData", "(III[F)V", (void*)nAdapter1DSubData_f }, 830d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nAdapter1DCreate", "()I", (void*)nAdapter1DCreate }, 831d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 832d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptDestroy", "(I)V", (void*)nScriptDestroy }, 833d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptBindAllocation", "(III)V", (void*)nScriptBindAllocation }, 834d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCBegin", "()V", (void*)nScriptCBegin }, 835d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetClearColor", "(FFFF)V", (void*)nScriptCSetClearColor }, 836d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetClearDepth", "(F)V", (void*)nScriptCSetClearDepth }, 837d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetClearStencil", "(I)V", (void*)nScriptCSetClearStencil }, 838d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCAddType", "(I)V", (void*)nScriptCAddType }, 839d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetRoot", "(Z)V", (void*)nScriptCSetRoot }, 840d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCSetScript", "(Ljava/lang/String;)V", (void*)nScriptCSetScript }, 841d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nScriptCCreate", "()I", (void*)nScriptCCreate }, 842d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 843d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreBegin", "(II)V", (void*)nProgramFragmentStoreBegin }, 844d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDepthFunc", "(I)V", (void*)nProgramFragmentStoreDepthFunc }, 845d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDepthMask", "(Z)V", (void*)nProgramFragmentStoreDepthMask }, 846d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreColorMask", "(ZZZZ)V", (void*)nProgramFragmentStoreColorMask }, 847d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreBlendFunc", "(II)V", (void*)nProgramFragmentStoreBlendFunc }, 848d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreDither", "(Z)V", (void*)nProgramFragmentStoreDither }, 849d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentStoreCreate", "()I", (void*)nProgramFragmentStoreCreate }, 850d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 851d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBegin", "(II)V", (void*)nProgramFragmentBegin }, 852d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBindTexture", "(III)V", (void*)nProgramFragmentBindTexture }, 853d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentBindSampler", "(III)V", (void*)nProgramFragmentBindSampler }, 854d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetType", "(II)V", (void*)nProgramFragmentSetType }, 855d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetEnvMode", "(II)V", (void*)nProgramFragmentSetEnvMode }, 856d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentSetTexEnable", "(IZ)V", (void*)nProgramFragmentSetTexEnable }, 857d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nProgramFragmentCreate", "()I", (void*)nProgramFragmentCreate }, 858d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 859d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindRootScript", "(I)V", (void*)nContextBindRootScript }, 860d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams//{"nContextBindSampler", "(II)V", (void*)nContextBindSampler }, 861d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindProgramFragmentStore","(I)V", (void*)nContextBindProgramFragmentStore }, 862d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{"nContextBindProgramFragment", "(I)V", (void*)nContextBindProgramFragment }, 863d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 864d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams}; 865d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 866d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsstatic int registerFuncs(JNIEnv *_env) 867d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 868d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return android::AndroidRuntime::registerNativeMethods( 869d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams _env, classPathName, methods, NELEM(methods)); 870d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 871d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 872d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams// --------------------------------------------------------------------------- 873d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 874d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsjint JNI_OnLoad(JavaVM* vm, void* reserved) 875d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams{ 876d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams JNIEnv* env = NULL; 877d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams jint result = -1; 878d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 879d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("****************************************************\n"); 880d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 881d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) { 882d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("ERROR: GetEnv failed\n"); 883d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto bail; 884d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 885d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams assert(env != NULL); 886d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 887d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams if (registerFuncs(env) < 0) { 888d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams LOGE("ERROR: MediaPlayer native registration failed\n"); 889d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams goto bail; 890d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams } 891d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 892d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams /* success -- return valid version number */ 893d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams result = JNI_VERSION_1_4; 894d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams 895d19f10d43aa400e1183aa21a97099d02074131a2Jason Samsbail: 896d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams return result; 897d19f10d43aa400e1183aa21a97099d02074131a2Jason Sams} 898