165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn/*
265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Copyright (C) 2011 The Android Open Source Project
365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn *
465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Licensed under the Apache License, Version 2.0 (the "License");
565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * you may not use this file except in compliance with the License.
665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * You may obtain a copy of the License at
765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn *
865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn *      http://www.apache.org/licenses/LICENSE-2.0
965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn *
1065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Unless required by applicable law or agreed to in writing, software
1165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * distributed under the License is distributed on an "AS IS" BASIS,
1265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * See the License for the specific language governing permissions and
1465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * limitations under the License.
1565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn */
1665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
1765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifndef ANDROID_FILTERFW_JNI_GL_ENVIRONMENT_H
1865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#define ANDROID_FILTERFW_JNI_GL_ENVIRONMENT_H
1965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
2065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#include <jni.h>
2165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
2265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifdef __cplusplus
2365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennextern "C" {
2465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif
2565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
2665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
2765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeAllocate(JNIEnv* env, jobject thiz);
2865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
2965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
3065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeDeallocate(JNIEnv* env, jobject thiz);
3165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
3265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
3365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeInitWithNewContext(JNIEnv* env, jobject thiz);
3465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
3565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
3665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeInitWithCurrentContext(JNIEnv* env, jobject thiz);
3765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
3865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
3965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeIsActive(JNIEnv* env, jobject thiz);
4065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
4165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
4265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeIsContextActive(JNIEnv* env, jobject thiz);
4365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
4465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
4565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeIsAnyContextActive(JNIEnv* env, jclass clazz);
4665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
4765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
4865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeActivate(JNIEnv* env, jobject thiz);
4965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
5065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
5165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeDeactivate(JNIEnv* env, jobject thiz);
5265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
5365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
5465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeSwapBuffers(JNIEnv* env, jobject thiz);
5565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
5665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jint JNICALL
5765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeAddSurface(JNIEnv* env,
5865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                          jobject thiz,
5965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                          jobject surface);
6065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
6165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jint JNICALL
6265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeAddSurfaceWidthHeight(JNIEnv* env,
6365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jobject thiz,
6465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jobject surface,
6565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jint width,
6665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jint height);
6765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
6865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn// The call to hook up the SurfaceMediaSource (in MediaServer)  to the GL.
6965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn// We get a sp<ISurfaceTexure> from the MediaServer and talks to MediaServer
7065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn// over a binder interface. GL hooked up to the MediaServer by using the native
71d47f7d8b5fe3a3861d7cbdc5f912235407823c8eAndy McFadden// window created using the <IGraphicBufferProducer> handle
7265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jint JNICALL
7365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeAddSurfaceFromMediaRecorder(
7465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                      JNIEnv* env,
7565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                      jobject thiz,
7665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                      jobject mediarecorder);
7765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
7865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
7965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeActivateSurfaceId(JNIEnv* env,
8065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jobject thiz,
8165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                 jint surfaceId);
8265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
8365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
8465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeRemoveSurfaceId(JNIEnv* env,
8565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                               jobject thiz,
8665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                               jint surfaceId);
8765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
8865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL
8965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_GLEnvironment_nativeSetSurfaceTimestamp(JNIEnv* env,
9065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                   jobject thiz,
9165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn                                                                   jlong timestamp);
9265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
9365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifdef __cplusplus
9465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn}
9565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif
9665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn
9765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif // ANDROID_FILTERFW_JNI_GL_ENVIRONMENT_H
98