mirror of https://github.com/encounter/SDL.git
Add a way to set the context when other activities are active so many SDL API functions still work.
This commit is contained in:
parent
130138fa59
commit
c684eb2cde
|
@ -56,6 +56,7 @@ public class SDLActivity extends Activity {
|
|||
public static boolean mSeparateMouseAndTouch;
|
||||
|
||||
// Main components
|
||||
protected static Context mContext;
|
||||
protected static SDLActivity mSingleton;
|
||||
protected static SDLSurface mSurface;
|
||||
protected static View mTextEdit;
|
||||
|
@ -135,6 +136,7 @@ public class SDLActivity extends Activity {
|
|||
public static void initialize() {
|
||||
// The static nature of the singleton and Android quirkyness force us to initialize everything here
|
||||
// Otherwise, when exiting the app and returning to it, these variables *keep* their pre exit values
|
||||
mContext = null;
|
||||
mSingleton = null;
|
||||
mSurface = null;
|
||||
mTextEdit = null;
|
||||
|
@ -155,6 +157,9 @@ public class SDLActivity extends Activity {
|
|||
}
|
||||
|
||||
// Setup
|
||||
public static void setContext(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Log.v(TAG, "Device: " + android.os.Build.DEVICE);
|
||||
|
@ -165,7 +170,7 @@ public class SDLActivity extends Activity {
|
|||
SDLActivity.initialize();
|
||||
|
||||
// So we can call stuff from static callbacks
|
||||
mSingleton = this;
|
||||
mContext = mSingleton = this;
|
||||
|
||||
// Load shared libraries
|
||||
String errorMsgBrokenLib = "";
|
||||
|
@ -564,8 +569,9 @@ public class SDLActivity extends Activity {
|
|||
*/
|
||||
public static void setOrientation(int w, int h, boolean resizable, String hint)
|
||||
{
|
||||
mSingleton.setOrientationBis(w, h, resizable, hint);
|
||||
return;
|
||||
if (mSingleton != null) {
|
||||
mSingleton.setOrientationBis(w, h, resizable, hint);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -638,6 +644,9 @@ public class SDLActivity extends Activity {
|
|||
* This method is called by SDL using JNI.
|
||||
*/
|
||||
public static boolean sendMessage(int command, int param) {
|
||||
if (mSingleton == null) {
|
||||
return false;
|
||||
}
|
||||
return mSingleton.sendCommand(command, Integer.valueOf(param));
|
||||
}
|
||||
|
||||
|
@ -645,7 +654,7 @@ public class SDLActivity extends Activity {
|
|||
* This method is called by SDL using JNI.
|
||||
*/
|
||||
public static Context getContext() {
|
||||
return mSingleton;
|
||||
return mContext;
|
||||
}
|
||||
|
||||
static class ShowTextInputTask implements Runnable {
|
||||
|
@ -716,6 +725,9 @@ public class SDLActivity extends Activity {
|
|||
* This method is called by SDL using JNI.
|
||||
*/
|
||||
public static Surface getNativeSurface() {
|
||||
if (SDLActivity.mSurface == null) {
|
||||
return null;
|
||||
}
|
||||
return SDLActivity.mSurface.getNativeSurface();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue