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