Mercurial > sdl-ios-xcode
diff src/SDL_android.cpp @ 4989:58b6bb4a45e9
More Android cleanup:
* Formalized the interface with Java methods in SDL_android.h
* We don't need the feature system, at least right now
* Fixed waiting for the SDLMain thread
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 12 Jan 2011 17:53:06 -0800 |
parents | 55b82067815b |
children | 9f9bea41e88f |
line wrap: on
line diff
--- a/src/SDL_android.cpp Wed Jan 12 16:35:03 2011 -0800 +++ b/src/SDL_android.cpp Wed Jan 12 17:53:06 2011 -0800 @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#include "SDL_android.h" + extern "C" { #include "events/SDL_events_c.h" #include "video/android/SDL_androidkeyboard.h" @@ -47,12 +49,8 @@ //method signatures jmethodID midCreateGLContext; jmethodID midFlipBuffers; -jmethodID midEnableFeature; jmethodID midUpdateAudio; -//If we're not the active app, don't try to render -bool bRenderingEnabled = false; - //Feature IDs static const int FEATURE_AUDIO = 1; static const int FEATURE_ACCEL = 2; @@ -84,11 +82,9 @@ mActivityInstance = cls; midCreateGLContext = mEnv->GetStaticMethodID(cls,"createGLContext","()V"); midFlipBuffers = mEnv->GetStaticMethodID(cls,"flipBuffers","()V"); - midEnableFeature = mEnv->GetStaticMethodID(cls,"enableFeature","(II)V"); midUpdateAudio = mEnv->GetStaticMethodID(cls,"updateAudio","([B)V"); - if(!midCreateGLContext || !midFlipBuffers || !midEnableFeature || - !midUpdateAudio) { + if(!midCreateGLContext || !midFlipBuffers || !midUpdateAudio) { __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: Bad mids\n"); } else { #ifdef DEBUG @@ -136,9 +132,6 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeQuit( JNIEnv* env, jobject obj ) { - // Stop rendering as we're no longer in the foreground - bRenderingEnabled = false; - // Inject a SDL_QUIT event SDL_SendQuit(); } @@ -165,32 +158,17 @@ /******************************************************************************* Functions called by SDL into Java *******************************************************************************/ -extern "C" void Android_CreateContext() +extern "C" void Android_JNI_CreateContext() { - __android_log_print(ANDROID_LOG_INFO, "SDL", "SDL: sdl_create_context()\n"); - - bRenderingEnabled = true; - - mEnv->CallStaticVoidMethod(mActivityInstance, midCreateGLContext ); + mEnv->CallStaticVoidMethod(mActivityInstance, midCreateGLContext); } -extern "C" void Android_Render() +extern "C" void Android_JNI_SwapWindow() { - if (!bRenderingEnabled) { - return; - } - - // When we get here, we've accumulated a full frame mEnv->CallStaticVoidMethod(mActivityInstance, midFlipBuffers); } -extern "C" void Android_EnableFeature(int featureid, bool enabled) -{ - mEnv->CallStaticVoidMethod(mActivityInstance, midEnableFeature, - featureid, (int)enabled); -} - -extern "C" void Android_UpdateAudioBuffer(unsigned char *buf, int len) +extern "C" void Android_JNI_UpdateAudioBuffer(unsigned char *buf, int len) { //Annoyingly we can't just call into Java from any thread. Because the audio //callback is dispatched from the SDL audio thread (that wasn't made from