From 667e0a2fa2a9b643f588b486da474643e2c518d0 Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Sun, 18 Aug 2013 01:42:51 +0200 Subject: Destroy cached textures when system runs out of resources Signed-off-by: Jorge Ruesga --- .../wallpapers/photophase/PhotoPhaseActivity.java | 12 ++++++++++++ .../wallpapers/photophase/PhotoPhaseRenderer.java | 11 +++++++++-- .../wallpapers/photophase/PhotoPhaseWallpaper.java | 14 ++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) (limited to 'src/org/cyanogenmod') diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java index 6469a18..973618d 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java @@ -156,4 +156,16 @@ public class PhotoPhaseActivity extends Activity implements OnTouchListener { } return false; } + + /** + * {@inheritDoc} + */ + @Override + public void onLowMemory() { + super.onLowMemory(); + Log.i(TAG, "onLowMemory"); + // Pause the wallpaper and destroy the cached textures + mRenderer.onPause(); + mRenderer.onLowMemory(); + } } diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java index a101ce0..6523b5d 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java @@ -203,7 +203,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } /** - * Method called when when renderer is created + * Method called when renderer is created */ public void onCreate() { if (DEBUG) Log.d(TAG, "onCreate [" + mInstance + "]"); @@ -221,7 +221,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } /** - * Method called when when renderer is destroyed + * Method called when renderer is destroyed */ public void onDestroy() { if (DEBUG) Log.d(TAG, "onDestroy [" + mInstance + "]"); @@ -237,6 +237,13 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { mMeasuredHeight = -1; } + /** + * Method called when system runs under low memory + */ + public void onLowMemory() { + mTextureManager.emptyTextureQueue(false); + } + /** * Method called when the renderer should be paused */ diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java index 5a09b49..8385032 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java @@ -161,6 +161,20 @@ public class PhotoPhaseWallpaper } } + /** + * {@inheritDoc} + */ + @Override + public void onLowMemory() { + super.onLowMemory(); + Log.i(TAG, "onLowMemory"); + for(PhotoPhaseRenderer renderer : mRenderers) { + // Pause the wallpaper and destroy the cached textures + renderer.onPause(); + renderer.onLowMemory(); + } + } + /** * {@inheritDoc} */ -- cgit v1.2.3