import android.app.Activity;\r
import android.app.AlertDialog;\r
import android.content.DialogInterface;\r
+import android.content.pm.ActivityInfo;\r
import android.opengl.GLSurfaceView;\r
import android.os.Bundle;\r
import android.view.SurfaceView;\r
*/\r
protected String exitDialogMessage = "Use your home key to bring this app into the background or exit to terminate it.";\r
\r
+ /**\r
+ * Set the screen orientation, default is SENSOR\r
+ * ActivityInfo.SCREEN_ORIENTATION_* constants\r
+ * package android.content.pm.ActivityInfo\r
+ * \r
+ * SCREEN_ORIENTATION_UNSPECIFIED\r
+ * SCREEN_ORIENTATION_LANDSCAPE\r
+ * SCREEN_ORIENTATION_PORTRAIT\r
+ * SCREEN_ORIENTATION_USER\r
+ * SCREEN_ORIENTATION_BEHIND\r
+ * SCREEN_ORIENTATION_SENSOR (default)\r
+ * SCREEN_ORIENTATION_NOSENSOR\r
+ */\r
+ protected int screenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR;\r
\r
protected OGLESContext ctx;\r
protected GLSurfaceView view;\r
- \r
+ protected boolean isGLThreadPaused = true;\r
final private String ESCAPE_EVENT = "TouchEscape"; \r
\r
@Override\r
requestWindowFeature(Window.FEATURE_NO_TITLE);\r
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,\r
WindowManager.LayoutParams.FLAG_FULLSCREEN);\r
-\r
+ \r
+ setRequestedOrientation(screenOrientation);\r
+ \r
AppSettings settings = new AppSettings(true);\r
AndroidInput input = new AndroidInput(this);\r
\r
\r
\r
@Override\r
- protected void onRestart(){\r
+ protected void onRestart()\r
+ {\r
super.onRestart(); \r
if (app != null)\r
app.restart();\r
\r
\r
@Override\r
- protected void onStart(){\r
+ protected void onStart()\r
+ {\r
super.onStart();\r
logger.info("onStart");\r
}\r
\r
@Override\r
- protected void onResume() {\r
+ protected void onResume() \r
+ {\r
super.onResume();\r
if (view != null)\r
view.onResume();\r
+ isGLThreadPaused = false;\r
logger.info("onResume");\r
}\r
\r
@Override\r
- protected void onPause() {\r
+ protected void onPause() \r
+ {\r
super.onPause();\r
if (view != null)\r
view.onPause();\r
+ isGLThreadPaused = true;\r
logger.info("onPause");\r
}\r
\r
@Override\r
- protected void onStop(){\r
+ protected void onStop()\r
+ {\r
super.onStop();\r
logger.info("onStop");\r
}\r
\r
@Override\r
- protected void onDestroy(){\r
+ protected void onDestroy()\r
+ {\r
if (app != null)\r
- app.stop(true);\r
+ app.stop(! isGLThreadPaused);\r
super.onDestroy(); \r
logger.info("onDestroy");\r
}\r