#include <android/asset_manager.h>
#include <android/native_window.h>
#include "android/native_app_glue/android_native_app_glue.h"
+#include "android/fg_main_android.h"
-#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "FreeGLUT", __VA_ARGS__))
-#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "FreeGLUT", __VA_ARGS__))
+#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "FreeGLUT-jnicb", __VA_ARGS__))
+#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "FreeGLUT-jnicb", __VA_ARGS__))
/* Cf. freeglut_main_android.c */
extern int32_t handle_input(struct android_app* app, AInputEvent* event);
AAssetDir_close(assetDir);
}
}
+
+ (*vm)->DetachCurrentThread(vm);
}
/**
* event loop for receiving input events and doing other things.
*/
void android_main(struct android_app* app) {
- LOGI("android_main");
+ LOGI("android_main savedState=%p", app->savedState);
/* Register window resize callback */
app->activity->callbacks->onNativeWindowResized = onNativeWindowResized;
{
char progname[5] = "self";
char* argv[] = {progname, NULL};
+ fgDisplay.pDisplay.app = app;
main(1, argv);
+ /* FreeGLUT will exit() by itself if
+ GLUT_ACTION_ON_WINDOW_CLOSE == GLUT_ACTION_EXIT */
}
LOGI("android_main: end");
- exit(0);
+
+ /* Let NativeActivity restart us */
+ /* Users may want to forcibly exit() in their main() anyway because
+ NativeActivity doesn't dlclose() us, so all statically-assigned
+ variables keep their old values on restart.. */
}