Switch between activities in opengl
<p>i have 2 activities in my game, one for the menu and the other is the game. When i click on new game, the game activity start and works fine, but when i press the back button, my main menu does not show anything, just a black screen. The Draw method in CMainMenu is still called by the renderer, if i put some log in it i can see it with logcat. What am i doing wrong?</p>

<p>Here is the code:</p>

<p>Game activity class, the menu activity class is the same, only CGame replaced with CMenu</p>

<pre><code>public class CGameActivity extends Activity {
private myGlSurfaceView glSurfaceView;
private CGame game;

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    // requesting to turn the title OFF
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // making it full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    // Initiate the Open GL view and
    // create an instance with this activity

    game=new CGame(this, this);
    glSurfaceView = new myGlSurfaceView(this, game);

    // set our renderer to be the main renderer with
    // the current activity context
    glSurfaceView.setRenderer(new GlRenderer(this,game));
    setContentView(glSurfaceView);
}

@Override
protected void onResume() 
{
    super.onResume();
    glSurfaceView.onResume();
}

@Override
protected void onPause() 
{
    super.onPause();
    glSurfaceView.onPause();
}
</code></pre>

<p>}</p>

<p>The GLSurfaceView class:</p>

<pre><code>public class myGlSurfaceView extends GLSurfaceView {

private CScene scene;

public myGlSurfaceView(Context context, CScene scene) {
    super(context);
    this.scene=scene;
}

@Override
public boolean  onTouchEvent  (MotionEvent  event){  
    scene.TapControl(event);
    return true;
}
</code></pre>

<p>}</p>

<p>My renderer:</p>

<pre><code>public class GlRenderer implements Renderer {

private Context     context;
private CScene      scene;
long mLastTime;

/** Constructor to set the handed over context */
public GlRenderer(Context context, CScene scene) {
    this.context = context;
    this.scene=scene;
}

@Override
public void onDrawFrame(GL10 gl) {
    long now = System.currentTimeMillis();

    if (mLastTime &gt; now) return;
    float dt = (float) ((now - mLastTime) / 1000.0);
    mLastTime = now;
    scene.Update(dt);
    scene.Draw(gl);
}

@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
    if(height == 0) {                       //Prevent A Divide By Zero By
        height = 1;                         //Making Height Equal One
    }
    gl.glViewport(0, 0, width, height);     //Reset The Current Viewport
    gl.glLoadIdentity();                    //Reset The Projection Matrix
    gl.glMatrixMode(GL10.GL_PROJECTION);    //Select The Projection Matrix

    GLU.gluOrtho2D(gl, 0, width, height, 0);

    gl.glMatrixMode(GL10.GL_MODELVIEW);     //Select The Modelview Matrix
    gl.glLoadIdentity();                    //Reset The Modelview Matrix
}

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    scene.LoadTextures(gl);
    gl.glEnable(GL10.GL_TEXTURE_2D);            //Enable Texture Mapping ( NEW )
    gl.glShadeModel(GL10.GL_SMOOTH);            //Enable Smooth Shading
    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);    //Black Background
    gl.glClearDepthf(1.0f);                     //Depth Buffer Setup
    gl.glEnable(GL10.GL_DEPTH_TEST);            //Enables Depth Testing
    gl.glDepthFunc(GL10.GL_LEQUAL);             //The Type Of Depth Testing To Do

    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
    gl.glEnable(GL10.GL_BLEND); 
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA); 
}
</code></pre>

<p>}</p>

<p>I start the new activity with this:</p>

<pre><code>Intent myIntent = new Intent(activity, CGameActivity.class);
</code></pre>

<p>activity.startActivity(myIntent);</p>
