public static string GetText(MultithreadedGame game, int primCountOffset = 0) { if (_CachedString == null) { _CachedString = GenerateText(game, primCountOffset); } return(_CachedString); }
public static void Record(MultithreadedGame game) { PushSample(WaitSamples, game.PreviousFrameTiming.Wait.TotalMilliseconds); PushSample(BeginDrawSamples, game.PreviousFrameTiming.BeginDraw.TotalMilliseconds); PushSample(DrawSamples, game.PreviousFrameTiming.Draw.TotalMilliseconds); PushSample(BeforePresentSamples, game.PreviousFrameTiming.BeforePresent.TotalMilliseconds); PushSample(EndDrawSamples, game.PreviousFrameTiming.EndDraw.TotalMilliseconds); _CachedString = null; }
private static string GenerateText(MultithreadedGame game, int primCountOffset) { StringBuilder.Clear(); var drawAverage = GetAverage(DrawSamples); var beginAverage = GetAverage(BeginDrawSamples); var bpAverage = GetAverage(BeforePresentSamples); var endAverage = GetAverage(EndDrawSamples); var waitAverage = GetAverage(WaitSamples); var totalAverage = drawAverage + beginAverage + endAverage + waitAverage; var fpsAverage = 1000.0 / totalAverage; StringBuilder.AppendFormat("wait {0,7:0.00}\r\n", waitAverage); StringBuilder.AppendFormat("bp {0,7:0.00}\r\n", bpAverage); StringBuilder.AppendFormat("ms/f {0,7:0.00}\r\n", totalAverage); StringBuilder.AppendFormat("FPS ~{0,7:0.00}\r\n", fpsAverage); return(StringBuilder.ToString()); }