All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DebugRenderingModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Modules.h"
7 #include "Helpers.h"
8 #include "Fonts.h"
9 #include "DebugRendering.h"
10 #include "Rendering.h"
11 #include "Camera.h"
12 #include "VectorMathDecl.h"
13 #include "DebugRenderingModuleConfiguration.h"
14 #include "Text.h"
15 
16 namespace Eegeo
17 {
18  namespace Modules
19  {
20  namespace Core
21  {
23  {
24  public:
26  Rendering::Shaders::ShaderIdGenerator& shaderIdGenerator,
27  Rendering::Materials::MaterialIdGenerator& materialIdGenerator,
30  Rendering::RenderableFilters& renderableFilters,
31  Fonts::IFontInstanceService& fontInstanceService,
32  Text::IScreenTextRenderer& screenTextRenderer);
33 
35 
36  static DebugRenderingModuleConfiguration DefaultConfig();
37 
38  static DebugRenderingModule* Create(const DebugRenderingModuleConfiguration& config,
39  Core::RenderingModule& renderingModule,
40  FontsModule& fontsModule,
41  Text::ScreenTextRenderingModule& screenTextRenderingModule);
42 
43  DebugRendering::DebugRenderer& GetDebugRenderer() const;
44  const Fonts::FontInstance& GetDebugFont() const;
45 
46  void Update(float dt, const Camera::RenderCamera& renderCamera);
47  private:
48  DebugRendering::DebugRenderer *m_pDebugRenderer;
49 
50  Rendering::Shaders::ColoredVertShader* m_pColoredVertShader;
51  Rendering::Materials::DebugMaterial* m_pDebugMaterial;
52 
53  Fonts::IFontInstanceService& m_fontInstanceService;
54  const Fonts::FontInstance* m_pDebugFont;
55  };
56  }
57  }
58 }