WPF显示FPS

时间:2012-12-15 14:20:40

标签: wpf frame-rate viewport3d

我正在尝试显示Viewport3D的FPS。

进行一些搜索,我遇到了CompositionTarget.Rendering,但这似乎给“WPF Performance suite”工具中显示的FPS带来了不同的结果。

当使用CompositionTarget.Rendering时,我得到一个稳定的60 fps,直到我与视口相机交互,(响应鼠标/键盘事件)然后fps拍摄高达150到200 fps,而“WPF”性能套件“工具仍然显示稳定的60 fps。

我认为这是因为“WPF性能套件”工具显示准确的FPS,即每当WPF团队在后备缓冲区上实际调用Present时,而CompositionTarget.Rendering是内部更新的fps,但不代表真实的帧。

我想展示更符合“WPF Performance suite”工具的内容,我该如何实现?

我使用CompositionTarget.Rendering如下 -

Viewport3D()
{
    CompositionTarget.Rendering += (s, a) =>
                {
                    ++m_frames;
                };

            DispatcherTimer fpsTimer = new DispatcherTimer();
            fpsTimer.Interval = TimeSpan.FromSeconds(1);
            fpsTimer.Tick += (s, a) =>
                {
                    m_fpsText.Text = string.Format("FPS:{0}", m_frames);
                    m_frames = 0;
                };
            fpsTimer.Start();
    }

0 个答案:

没有答案