Applied LÖVE related patches to SDL2

This commit is contained in:
Martin Felis
2016-10-30 21:26:13 +01:00
parent f87d73671f
commit 70f63954ed
2 changed files with 53 additions and 34 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ LOCAL_SRC_FILES := \
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
include $(BUILD_SHARED_LIBRARY)
#include $(BUILD_SHARED_LIBRARY)
###########################
#
+52 -33
View File
@@ -123,10 +123,6 @@ public class SDLActivity extends Activity {
Log.v(TAG, "onCreate(): " + mSingleton);
super.onCreate(savedInstanceState);
SDLActivity.initialize();
// So we can call stuff from static callbacks
mSingleton = this;
// Load shared libraries
String errorMsgBrokenLib = "";
try {
@@ -163,21 +159,8 @@ public class SDLActivity extends Activity {
return;
}
// Set up the surface
mSurface = new SDLSurface(getApplication());
startNative();
if(Build.VERSION.SDK_INT >= 12) {
mJoystickHandler = new SDLJoystickHandler_API12();
}
else {
mJoystickHandler = new SDLJoystickHandler();
}
mLayout = new RelativeLayout(this);
mLayout.addView(mSurface);
setContentView(mLayout);
// Get filename from "Open with" of another application
Intent intent = getIntent();
@@ -254,27 +237,63 @@ public class SDLActivity extends Activity {
return;
}
// Send a quit message to the application
SDLActivity.mExitCalledFromJava = true;
SDLActivity.nativeQuit();
// Now wait for the SDL thread to quit
if (SDLActivity.mSDLThread != null) {
try {
SDLActivity.mSDLThread.join();
} catch(Exception e) {
Log.v(TAG, "Problem stopping thread: " + e);
}
SDLActivity.mSDLThread = null;
//Log.v(TAG, "Finished waiting for SDL thread");
}
// love2d-mod-start: end main thread when opening new .love file
resetNative();
// love2d-mod-end
super.onDestroy();
// Reset everything in case the user re opens the app
SDLActivity.initialize();
}
// love2d-mod-start: end main thread when opening new .love file
/** Ends the native thread.
*/
public void resetNative() {
Log.v("SDL", "resetNative()");
// Send a quit message to the application
SDLActivity.mExitCalledFromJava = true;
SDLActivity.nativeQuit();
// Now wait for the SDL thread to quit
if (SDLActivity.mSDLThread != null) {
try {
SDLActivity.mSDLThread.join();
} catch(Exception e) {
Log.v("SDL", "Problem stopping thread: " + e);
}
SDLActivity.mSDLThread = null;
//Log.v("SDL", "Finished waiting for SDL thread");
}
SDLActivity.initialize();
}
public void startNative() {
Log.v("SDL", "startNative()");
SDLActivity.initialize();
// So we can call stuff from static callbacks
mSingleton = this;
// Set up the surface
mSurface = new SDLSurface(getApplication());
if(Build.VERSION.SDK_INT >= 12) {
mJoystickHandler = new SDLJoystickHandler_API12();
}
else {
mJoystickHandler = new SDLJoystickHandler();
}
mLayout = new RelativeLayout(this);
mLayout.addView(mSurface);
setContentView(mLayout);
}
// love2d-mod-end
@Override
public boolean dispatchKeyEvent(KeyEvent event) {