public IEnumerator TurnPage(int direction)
 {
     turningPage = true;
     if (direction < 0)
     {
         PageIndex--;
         turningScale = -1f;
         dotTarget   -= 1f;
         Page.Redraw(CurrentPageBuffer);
         NextPage.Redraw(NextPageBuffer);
         while ((turningScale = Calc.Approach(turningScale, 1f, Engine.DeltaTime * 8f)) < 1f)
         {
             yield return(null);
         }
     }
     else
     {
         NextPage.Redraw(NextPageBuffer);
         turningScale = 1f;
         dotTarget   += 1f;
         while ((turningScale = Calc.Approach(turningScale, -1f, Engine.DeltaTime * 8f)) > -1f)
         {
             yield return(null);
         }
         PageIndex++;
         Page.Redraw(CurrentPageBuffer);
     }
     turningScale = 1f;
     turningPage  = false;
     yield break;
 }