All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FrameTimerVisualiser.h
1 // Copyright (c) 2014 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "FrameTimer.h"
7 #include "DebugRenderer.h"
8 
9 namespace Eegeo
10 {
11  namespace Debug
12  {
14  {
15  public:
16  FrameTimerVisualiser(const FrameTimer& frameTimer,
17  DebugRendering::DebugRenderer& debugRenderer)
18  : m_warningMs(33)
19  , m_errorMs(40)
20  , m_frameTimer(frameTimer)
21  , m_debugRenderer(debugRenderer)
22  , m_enabled(false)
23  {
24  }
25 
26  const bool GetEnabled() const { return m_enabled; }
27  void SetEnabled(bool enabled) { m_enabled = enabled; }
28 
29  void SetWarningMs(float warningMs) { m_warningMs = warningMs; }
30  void SetErrorMs(float errorMs) { m_errorMs = errorMs; }
31 
32  void Draw(const Rendering::RenderContext& renderContext);
33 
34  private:
35  void DrawSample(const FrameTime& sample, const v2& screenDimensions, int position);
36 
37  v4 GetUpdateColor(float frameTimeMS);
38  v4 GetFrameColor(float frameTimeMS);
39  v4 GetDrawColor(float frameTimeMS);
40 
41  float m_warningMs;
42  float m_errorMs;
43  const FrameTimer& m_frameTimer;
44  DebugRendering::DebugRenderer& m_debugRenderer;
45  bool m_enabled;
46  };
47  }
48 }