diff options
Diffstat (limited to 'src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java')
-rw-r--r-- | src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java b/src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java new file mode 100644 index 000000000..475906c81 --- /dev/null +++ b/src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java @@ -0,0 +1,37 @@ +package com.android.gallery3d.ui; + +import com.android.gallery3d.ui.GLRoot.OnGLIdleListener; + +public class PreparePageFadeoutTexture implements OnGLIdleListener { + private RawTexture mTexture; + private boolean mResultReady = false; + private GLView mRootPane; + + public PreparePageFadeoutTexture(int w, int h, GLView rootPane) { + mTexture = new RawTexture(w, h, true); + mRootPane = rootPane; + } + + public synchronized RawTexture get() { + try { + while (!mResultReady) { + wait(); + } + } catch (InterruptedException e) { + // Since this is just used for a transition, not that important + } + return mTexture; + } + + @Override + public boolean onGLIdle(GLCanvas canvas, boolean renderRequested) { + canvas.beginRenderTarget(mTexture); + mRootPane.render(canvas); + canvas.endRenderTarget(); + synchronized (this) { + mResultReady = true; + notifyAll(); + } + return false; + } +} |