protected void UpdateStats()
{
// TODO: Replace with CEGUI
OverlayElement element = OverlayManager.Instance.Elements.GetElement( "Core/CurrFps" );
if ( element != null )
element.Text = string.Format( "Current FPS: {0:#.00}", Root.Instance.CurrentFPS );
element = OverlayManager.Instance.Elements.GetElement( "Core/BestFps" );
if ( element != null )
element.Text = string.Format( "Best FPS: {0:#.00}", Root.Instance.BestFPS );
element = OverlayManager.Instance.Elements.GetElement( "Core/WorstFps" );
if ( element != null )
element.Text = string.Format( "Worst FPS: {0:#.00}", Root.Instance.WorstFPS );
//element = OverlayManager.Instance.Elements.GetElement( "Core/AverageFps" );
//element.Text = string.Format( "Average FPS: {0:#.00}", Root.Instance.AverageFPS );
element = OverlayManager.Instance.Elements.GetElement( "Core/AverageFps" );
sum += Root.Instance.CurrentFPS;
average = sum / elapsedFrames;
elapsedFrames++;
if ( element != null )
element.Text = string.Format( "Average FPS: {0:#.00} in {1:#.0}s", average, ( DateTime.Now - averageStart ).TotalSeconds );
element = OverlayManager.Instance.Elements.GetElement( "Core/NumTris" );
if ( element != null )
element.Text = string.Format( "Triangle Count: {0}", scene.TargetRenderSystem.FaceCount );
element = OverlayManager.Instance.Elements.GetElement( "Core/NumBatches" );
if ( element != null )
element.Text = string.Format( "Batch Count: {0}", scene.TargetRenderSystem.BatchCount );
element = OverlayManager.Instance.Elements.GetElement( "Core/DebugText" );
if ( element != null )
element.Text = debugText;
}