protected void render(GLCanvas canvas) {
   boolean transitionActive = false;
   if (mTransition != null && mTransition.calculate(AnimationTime.get())) {
     invalidate();
     transitionActive = mTransition.isActive();
   }
   renderBackground(canvas);
   canvas.save();
   if (transitionActive) {
     mTransition.applyContentTransform(this, canvas);
   }
   for (int i = 0, n = getComponentCount(); i < n; ++i) {
     renderChild(canvas, getComponent(i));
   }
   canvas.restore();
   if (transitionActive) {
     mTransition.applyOverlay(this, canvas);
   }
 }