diff options
Diffstat (limited to 'src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java')
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java index 98a07e6..7fb467f 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java @@ -254,12 +254,10 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } /** - * Method called when renderer is destroyed + * Method called when renderer when GL context is destroyed */ - public void onDestroy() { - if (DEBUG) Log.d(TAG, "onDestroy [" + mInstance + "]"); - // Register a receiver to listen for media reload request - mContext.unregisterReceiver(mSettingsChangedReceiver); + public void onGLContextDestroy() { + if (DEBUG) Log.d(TAG, "onGLContextDestroy [" + mInstance + "]"); recycle(); if (mEffectContext != null) { mEffectContext.release(); @@ -271,6 +269,15 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } /** + * Method called when renderer is destroyed + */ + public void onDestroy() { + if (DEBUG) Log.d(TAG, "onDestroy [" + mInstance + "]"); + // Register a receiver to listen for media reload request + mContext.unregisterReceiver(mSettingsChangedReceiver); + } + + /** * Method called when system runs under low memory */ public void onLowMemory() { @@ -559,7 +566,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } // Delete the world - if (mWorld != null) mWorld.recycle(); + if (mWorld != null) mWorld.recycle(true); if (mTextureManager != null) mTextureManager.recycle(); if (mOverlay != null) mOverlay.recycle(); if (mOopsShape != null) mOopsShape.recycle(); @@ -655,9 +662,9 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { mTextureManager.setScreenDimesions(screenDimensions); mTextureManager.setPause(false); - // Create the wallpaper (destroy the previous) + // Create the wallpaper (destroy the previous world) if (mWorld != null) { - mWorld.recycle(); + mWorld.recycle(false); } mWorld = new PhotoPhaseWallpaperWorld(mContext, mTextureManager); |