blob: 250d17a2b8260330eb387087c0442a986f74a0f1 [file] [log] [blame]
package com.android.gallery3d.ui;
import android.os.ConditionVariable;
import com.android.gallery3d.ui.GLRoot.OnGLIdleListener;
public class PreparePageFadeoutTexture implements OnGLIdleListener {
private static final long TIMEOUT = FadeTexture.DURATION;
private RawTexture mTexture;
private ConditionVariable mResultReady = new ConditionVariable(false);
private GLView mRootPane;
public PreparePageFadeoutTexture(int w, int h, GLView rootPane) {
mTexture = new RawTexture(w, h, true);
mRootPane = rootPane;
}
public synchronized RawTexture get() {
if (mResultReady.block(TIMEOUT)) {
return mTexture;
} else {
return null;
}
}
@Override
public boolean onGLIdle(GLCanvas canvas, boolean renderRequested) {
canvas.beginRenderTarget(mTexture);
mRootPane.render(canvas);
canvas.endRenderTarget();
mResultReady.open();
return false;
}
}