Exemple #1
0
        public static string GetText(MultithreadedGame game, int primCountOffset = 0)
        {
            if (_CachedString == null)
            {
                _CachedString = GenerateText(game, primCountOffset);
            }

            return(_CachedString);
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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());
        }