Преглед изворни кода

Android: set PreserveEGLContextOnPause when the os is rev 11 or higher. Dramatically reduces the resume time when the context can be preserved.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10919 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
iwg..ic пре 11 година
родитељ
комит
911958cfbe
1 измењених фајлова са 10 додато и 0 уклоњено
  1. 10 0
      engine/src/android/com/jme3/system/android/OGLESContext.java

+ 10 - 0
engine/src/android/com/jme3/system/android/OGLESContext.java

@@ -39,6 +39,7 @@ import android.content.DialogInterface;
 import android.content.pm.ConfigurationInfo;
 import android.graphics.PixelFormat;
 import android.opengl.GLSurfaceView;
+import android.os.Build;
 import android.text.InputType;
 import android.view.Gravity;
 import android.view.SurfaceHolder;
@@ -104,6 +105,7 @@ public class OGLESContext implements JmeContext, GLSurfaceView.Renderer, SoftTex
      */
     public AndroidGLSurfaceView createView() {
         AndroidGLSurfaceView view;
+        int buildVersion = Build.VERSION.SDK_INT;
 
         // Start to set up the view
         view = new AndroidGLSurfaceView(JmeAndroidSystem.getActivity().getApplication());
@@ -153,6 +155,14 @@ public class OGLESContext implements JmeContext, GLSurfaceView.Renderer, SoftTex
         AndroidConfigChooser configChooser = new AndroidConfigChooser(settings);
         view.setEGLConfigChooser(configChooser);
         view.setRenderer(this);
+        
+        // Attempt to preserve the EGL Context on app pause/resume.
+        // Not destroying and recreating the EGL context 
+        // will help with resume time by reusing the existing context to avoid
+        // reloading all the OpenGL objects.
+        if (buildVersion >= 11) {
+            view.setPreserveEGLContextOnPause(true);
+        }
 
         return view;
     }