1 /*******************************************************************************
3 *******************************************************************************/
7 #include <android/log.h>
19 /*******************************************************************************
21 *******************************************************************************/
22 static long _getTime(void){
24 gettimeofday(&now, NULL);
25 return (long)(now.tv_sec*1000 + now.tv_usec/1000);
32 jclass mActivityInstance;
35 jmethodID midCreateGLContext;
36 jmethodID midFlipBuffers;
38 extern "C" int SDL_main();
39 extern "C" int Android_OnKeyDown(int keycode);
40 extern "C" int Android_OnKeyUp(int keycode);
42 /*******************************************************************************
43 Functions called by JNI
44 *******************************************************************************/
46 extern "C" void Java_org_libsdl_android_SDLActivity_nativeInit( JNIEnv* env, jobject obj )
48 __android_log_print(ANDROID_LOG_INFO, "SDL", "JNI: NativeInit");
55 extern "C" jint JNI_OnLoad(JavaVM* vm, void* reserved)
60 if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {
66 __android_log_print(ANDROID_LOG_INFO, "SDL", "JNI: OnLoad");
68 jclass cls = mEnv->FindClass ("org/libsdl/android/SDLActivity");
69 mActivityInstance = cls;
70 midCreateGLContext = mEnv->GetStaticMethodID(cls,"createGLContext","()V");
71 midFlipBuffers = mEnv->GetStaticMethodID(cls,"flipBuffers","()V");
73 if(!midCreateGLContext || !midFlipBuffers){
74 __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: Bad mids\n");
76 __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: Good mids\n");
79 return JNI_VERSION_1_4;
82 extern "C" void Java_org_libsdl_android_SDLActivity_onNativeKeyDown(JNIEnv* env,
83 jobject obj, jint keycode){
85 int r = Android_OnKeyDown(keycode);
86 __android_log_print(ANDROID_LOG_INFO, "SDL",
87 "SDL: native key down %d, %d\n", keycode, r);
90 extern "C" void Java_org_libsdl_android_SDLActivity_onNativeKeyUp(JNIEnv* env,
91 jobject obj, jint keycode){
93 int r = Android_OnKeyUp(keycode);
94 __android_log_print(ANDROID_LOG_INFO, "SDL",
95 "SDL: native key up %d, %d\n", keycode, r);
98 extern "C" void Java_org_libsdl_android_SDLActivity_onNativeTouch(JNIEnv* env,
99 jobject obj, jint action, jfloat x, jfloat y, jfloat p){
100 __android_log_print(ANDROID_LOG_INFO, "SDL",
101 "SDL: native touch event %d @ %f/%f, pressure %f\n",
107 /*******************************************************************************
108 Functions called by SDL
109 *******************************************************************************/
110 extern "C" void sdl_create_context(){
111 __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: sdl_create_context()\n");
113 mEnv->CallStaticVoidMethod(mActivityInstance, midCreateGLContext );
114 __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: sdl_create_context() return\n");
119 extern "C" void sdl_render(){
121 //When we get here, we've accumulated a full frame
122 //__android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: sdl_render()");
124 mEnv->CallStaticVoidMethod(mActivityInstance, midFlipBuffers );