130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni/* 230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * Copyright (C) 2011 The Android Open Source Project 330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * 430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * Licensed under the Apache License, Version 2.0 (the "License"); 530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * you may not use this file except in compliance with the License. 630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * You may obtain a copy of the License at 730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * 830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * http://www.apache.org/licenses/LICENSE-2.0 930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * 1030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * Unless required by applicable law or agreed to in writing, software 1130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * distributed under the License is distributed on an "AS IS" BASIS, 1230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * See the License for the specific language governing permissions and 1430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni * limitations under the License. 1530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni */ 1630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 17e9912de34684f1b8deaf36bcf77686152d33765dEino-Ville Talvala#ifndef ANDROID_FILTERFW_JNI_GL_FRAME_H 18e9912de34684f1b8deaf36bcf77686152d33765dEino-Ville Talvala#define ANDROID_FILTERFW_JNI_GL_FRAME_H 1930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 2030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni#include <jni.h> 2130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 2230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni#ifdef __cplusplus 2330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroniextern "C" { 2430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni#endif 2530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 2630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 27f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius RennJava_android_filterfw_core_GLFrame_nativeAllocate(JNIEnv* env, 28f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject thiz, 29f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject gl_env, 30f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint width, 31f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint height); 3230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 3330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 34f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius RennJava_android_filterfw_core_GLFrame_nativeAllocateWithTexture(JNIEnv* env, 35f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject thiz, 36f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject gl_env, 37f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint tex_id, 38f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint width, 39776102d45a18a5df53d2ec76c5d93f20b3e99da1Marius Renn jint height); 4030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 4130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 42f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius RennJava_android_filterfw_core_GLFrame_nativeAllocateWithFbo(JNIEnv* env, 43f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject thiz, 44f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject gl_env, 45f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint fbo_id, 46f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jint width, 47776102d45a18a5df53d2ec76c5d93f20b3e99da1Marius Renn jint height); 4830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 4930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 50f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius RennJava_android_filterfw_core_GLFrame_nativeAllocateExternal(JNIEnv* env, 51f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject thiz, 52f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius Renn jobject gl_env); 5330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 5430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 55f5ae8eafa7605c6593f62f873b62cb64a3254db3Marius RennJava_android_filterfw_core_GLFrame_nativeDeallocate(JNIEnv* env, jobject thiz); 5630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 5730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 5830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeInts(JNIEnv* env, jobject thiz, jintArray ints); 5930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 6030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jintArray JNICALL 6130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeInts(JNIEnv* env, jobject thiz); 6230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 6330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 6430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeFloats(JNIEnv* env, jobject thiz, jfloatArray ints); 6530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 6630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jfloatArray JNICALL 6730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeFloats(JNIEnv* env, jobject thiz); 6830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 6930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 7030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeData(JNIEnv* env, 7130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 7230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jbyteArray data, 7330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint offset, 7430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint length); 7530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 7630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jbyteArray JNICALL 7730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeData(JNIEnv* env, jobject thiz); 7830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 7930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 8030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeBitmap(JNIEnv* env, 8130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 8230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject bitmap, 8330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint size); 8430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 8530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 8630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeBitmap(JNIEnv* env, jobject thiz, jobject bitmap); 8730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 8830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 8930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeViewport(JNIEnv* env, 9030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 9130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint x, 9230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint y, 9330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint width, 9430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint height); 9530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 9630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jint JNICALL 9730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeTextureId(JNIEnv* env, jobject thiz); 9830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 9930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jint JNICALL 10030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_getNativeFboId(JNIEnv* env, jobject thiz); 10130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 10230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 10330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_generateNativeMipMap(JNIEnv* env, jobject thiz); 10430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 10530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 10630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_setNativeTextureParam(JNIEnv* env, 10730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 10830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint param, 10930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jint value); 11030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 11130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 11233164fee278e106cc5d0493a1c184f208e9d273fMarius RennJava_android_filterfw_core_GLFrame_nativeResetParams(JNIEnv* env, jobject thiz); 11333164fee278e106cc5d0493a1c184f208e9d273fMarius Renn 11433164fee278e106cc5d0493a1c184f208e9d273fMarius RennJNIEXPORT jboolean JNICALL 11530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_nativeCopyFromNative(JNIEnv* env, 11630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 11730ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject frame); 11830ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 11930ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 12030ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_nativeCopyFromGL(JNIEnv* env, 12130ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject thiz, 12230ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni jobject frame); 12330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 12430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJNIEXPORT jboolean JNICALL 12530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo CarceroniJava_android_filterfw_core_GLFrame_nativeFocus(JNIEnv* env, jobject thiz); 12630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 12792568796d043c794553e5bcaa797c906899e71f0Marius RennJNIEXPORT jboolean JNICALL 12892568796d043c794553e5bcaa797c906899e71f0Marius RennJava_android_filterfw_core_GLFrame_nativeReattachTexToFbo(JNIEnv* env, jobject thiz); 12992568796d043c794553e5bcaa797c906899e71f0Marius Renn 13092568796d043c794553e5bcaa797c906899e71f0Marius RennJNIEXPORT jboolean JNICALL 13192568796d043c794553e5bcaa797c906899e71f0Marius RennJava_android_filterfw_core_GLFrame_nativeDetachTexFromFbo(JNIEnv* env, jobject thiz); 13292568796d043c794553e5bcaa797c906899e71f0Marius Renn 13330ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni#ifdef __cplusplus 13430ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni} 13530ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni#endif 13630ab3fc173709a491c9e2e103f53fb7c0d1b96b7Rodrigo Carceroni 137e9912de34684f1b8deaf36bcf77686152d33765dEino-Ville Talvala#endif /* ANDROID_FILTERFW_JNI_GL_FRAME_H */ 138