public void printTo(String prefix, PrintWriter pw) {
   pw.print(prefix);
   pw.print("mSurface=");
   pw.print(mSurface);
   pw.print(" mWidth=");
   pw.print(mWidth);
   pw.print(" mHeight=");
   pw.println(mHeight);
   if (USE_CUSTOM_BLACK_FRAME) {
     pw.print(prefix);
     pw.print("mCustomBlackFrame=");
     pw.println(mCustomBlackFrame);
     if (mCustomBlackFrame != null) {
       mCustomBlackFrame.printTo(prefix + "  ", pw);
     }
   }
   pw.print(prefix);
   pw.print("mExitingBlackFrame=");
   pw.println(mExitingBlackFrame);
   if (mExitingBlackFrame != null) {
     mExitingBlackFrame.printTo(prefix + "  ", pw);
   }
   pw.print(prefix);
   pw.print("mEnteringBlackFrame=");
   pw.println(mEnteringBlackFrame);
   if (mEnteringBlackFrame != null) {
     mEnteringBlackFrame.printTo(prefix + "  ", pw);
   }
   pw.print(prefix);
   pw.print("mCurRotation=");
   pw.print(mCurRotation);
   pw.print(" mOriginalRotation=");
   pw.println(mOriginalRotation);
   pw.print(prefix);
   pw.print("mOriginalWidth=");
   pw.print(mOriginalWidth);
   pw.print(" mOriginalHeight=");
   pw.println(mOriginalHeight);
   pw.print(prefix);
   pw.print("mStarted=");
   pw.print(mStarted);
   pw.print(" mAnimRunning=");
   pw.print(mAnimRunning);
   pw.print(" mFinishAnimReady=");
   pw.print(mFinishAnimReady);
   pw.print(" mFinishAnimStartTime=");
   pw.println(mFinishAnimStartTime);
   pw.print(prefix);
   pw.print("mStartExitAnimation=");
   pw.print(mStartExitAnimation);
   pw.print(" ");
   mStartExitTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mStartEnterAnimation=");
   pw.print(mStartEnterAnimation);
   pw.print(" ");
   mStartEnterTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mStartFrameAnimation=");
   pw.print(mStartFrameAnimation);
   pw.print(" ");
   mStartFrameTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mFinishExitAnimation=");
   pw.print(mFinishExitAnimation);
   pw.print(" ");
   mFinishExitTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mFinishEnterAnimation=");
   pw.print(mFinishEnterAnimation);
   pw.print(" ");
   mFinishEnterTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mFinishFrameAnimation=");
   pw.print(mFinishFrameAnimation);
   pw.print(" ");
   mFinishFrameTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mRotateExitAnimation=");
   pw.print(mRotateExitAnimation);
   pw.print(" ");
   mRotateExitTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mRotateEnterAnimation=");
   pw.print(mRotateEnterAnimation);
   pw.print(" ");
   mRotateEnterTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mRotateFrameAnimation=");
   pw.print(mRotateFrameAnimation);
   pw.print(" ");
   mRotateFrameTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mExitTransformation=");
   mExitTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mEnterTransformation=");
   mEnterTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mFrameTransformation=");
   mEnterTransformation.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mFrameInitialMatrix=");
   mFrameInitialMatrix.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mSnapshotInitialMatrix=");
   mSnapshotInitialMatrix.printShortString(pw);
   pw.print(" mSnapshotFinalMatrix=");
   mSnapshotFinalMatrix.printShortString(pw);
   pw.println();
   pw.print(prefix);
   pw.print("mExitFrameFinalMatrix=");
   mExitFrameFinalMatrix.printShortString(pw);
   pw.println();
 }