summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java')
-rw-r--r--src/com/android/gallery3d/ui/PreparePageFadeoutTexture.java37
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;
+ }
+}