aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java')
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/effects/PhotoPhaseEffect.java16
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");
}