@Override
 public boolean onGLIdle(final GLCanvas canvas, final boolean renderRequested) {
   if (!mCancelled) {
     try {
       canvas.beginRenderTarget(mTexture);
       mRootPane.render(canvas);
       canvas.endRenderTarget();
     } catch (final RuntimeException e) {
       mTexture = null;
     }
   } else {
     mTexture = null;
   }
   mResultReady.open();
   return false;
 }