Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

After onPause is called for the GLSurfaceView the rendering surface is destroyed, along with all the textures, shaders and the like. On onResume() should the surface not be recreated and GLRenderer onSurfaceCreated called? However that is never called. I am using render when dirty.

share|improve this question
    
Are you calling GLSurfaceView.onResume() from the application's onResume()? –  Sam Hocevar Dec 7 '11 at 13:48
    
Yes, I am calling onResume() and onPause() –  leonmajere Dec 7 '11 at 18:31
add comment

2 Answers

If you use this modified version of GLSurfaceView your rendering surface will not be destroyed:

http://replicaisland.googlecode.com/svn/trunk/src/com/replica/replicaisland/GLSurfaceView.java

As far as graphical context (OpengGL ES context) is concerned there is a myth surrounding this issue, that it's destroyed when onPause is called. No that is quite not true. Your context stays alive as long as there is still memory left for other contexts to be called upon.

For example if you have 3 games each requiring around 100 MB of RAM, they can all run at once on a Samsung Galaxy S2, which has around 800+ MB, depending on the manufacturing model. However on low memory devices you should implement a texture + shader load/unload method.

share|improve this answer
add comment

I believe this is something the android framework does, as some devices / GPU's can't support multiple GL states and clearing any onPause() allows other apps to use openGL.

I just accept that and reload textures etc onResume(). If you keep your textures as bitmaps in memory as well as all your vertices etc, you should be able to minimise the amount of time it takes to reload after resumption.

Then again, I don't extend GLSurfaceView and do all my rendering in GLSurfaceView.Renderer

EDIT: Actually, check the answers for this question

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.