summaryrefslogtreecommitdiffstats
path: root/src/newt/native
diff options
context:
space:
mode:
Diffstat (limited to 'src/newt/native')
-rw-r--r--src/newt/native/AndroidWindow.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/newt/native/AndroidWindow.c b/src/newt/native/AndroidWindow.c
new file mode 100644
index 000000000..4359c22bb
--- /dev/null
+++ b/src/newt/native/AndroidWindow.c
@@ -0,0 +1,47 @@
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include <gluegen_stdint.h>
+
+#include <unistd.h>
+#include <errno.h>
+#include <EGL/egl.h>
+
+#include "jogamp_newt_driver_android_AndroidWindow.h"
+
+#include <android/native_window.h>
+#include <android/native_window_jni.h>
+
+#define VERBOSE_ON 1
+
+#ifdef VERBOSE_ON
+ #define DBG_PRINT(...) fprintf(stdout, __VA_ARGS__)
+#else
+ #define DBG_PRINT(...)
+#endif
+
+
+JNIEXPORT jlong JNICALL Java_jogamp_newt_driver_android_AndroidWindow_getSurfaceHandle
+ (JNIEnv *env, jclass clazz, jobject surface)
+{
+ ANativeWindow * anw = ANativeWindow_fromSurface(env, surface);
+ return (jlong) (intptr_t) anw;
+}
+
+JNIEXPORT void JNICALL Java_jogamp_newt_driver_android_AndroidWindow_setSurfaceVisualID
+ (JNIEnv *env, jclass clazz, jlong surfaceHandle, jint nativeVisualID)
+{
+ ANativeWindow * anw = (ANativeWindow *) (intptr_t) surfaceHandle;
+ ANativeWindow_setBuffersGeometry(anw, 0, 0, nativeVisualID);
+}
+
+JNIEXPORT jboolean JNICALL Java_jogamp_newt_driver_android_AndroidWindow_initIDs
+ (JNIEnv *env, jclass clazz)
+{
+ DBG_PRINT( "initIDs ok\n" );
+ return JNI_TRUE;
+}
+