diff options
Diffstat (limited to 'src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java')
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java b/src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java index 0b3c5fc..0900322 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java +++ b/src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java @@ -21,6 +21,7 @@ import android.media.effect.EffectContext; import android.media.effect.EffectFactory; import android.opengl.GLES20; import android.opengl.GLUtils; +import android.util.Log; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil; @@ -138,11 +139,14 @@ public abstract class PhotoPhaseEffect extends Effect { // Save the GLES state saveGLState(); + int[] fb = new int[1]; try { // Create a framebuffer object and call the effect apply method to draw the effect - int[] fb = new int[1]; GLES20.glGenFramebuffers(1, fb, 0); GLESUtil.glesCheckError("glGenFramebuffers"); + if (GLESUtil.DEBUG_GL_MEMOBJS) { + Log.d(GLESUtil.DEBUG_GL_MEMOBJS_NEW_TAG, "glGenFramebuffers: " + fb[0]); + } GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, fb[0]); GLESUtil.glesCheckError("glBindFramebuffer"); @@ -171,6 +175,13 @@ public abstract class PhotoPhaseEffect extends Effect { } finally { // Restore the GLES state restoreGLState(); + + // Clean framebuffer memory + if (GLESUtil.DEBUG_GL_MEMOBJS) { + Log.d(GLESUtil.DEBUG_GL_MEMOBJS_DEL_TAG, "glDeleteFramebuffers: " + fb[0]); + } + GLES20.glDeleteFramebuffers(1, fb, 0); + GLESUtil.glesCheckError("glDeleteFramebuffers"); } } @@ -189,6 +200,9 @@ public abstract class PhotoPhaseEffect extends Effect { @Override public void release() { if (GLES20.glIsProgram(mProgram)) { + if (GLESUtil.DEBUG_GL_MEMOBJS) { + Log.d(GLESUtil.DEBUG_GL_MEMOBJS_DEL_TAG, "glDeleteProgram: " + mProgram); + } GLES20.glDeleteProgram(mProgram); GLESUtil.glesCheckError("glDeleteProgram"); } |