All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ScreenTextRenderingModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Text.h"
7 #include "Fonts.h"
8 #include "Modules.h"
9 #include "Rendering.h"
10 #include "DebugRendering.h"
11 #include "GlBuffer.h"
12 
13 namespace Eegeo
14 {
15  namespace Text
16  {
18  {
19  public:
20  static ScreenTextRenderingModule* Create(const Modules::Core::RenderingModule& renderingModule,
21  const Modules::Core::FontsModule& fontsModule,
22  bool enableSupersampling);
23 
25 
26  void PreDraw();
27 
28  void Update();
29 
30  IScreenTextRenderer& GetScreenTextRenderer() const;
31 
32  IWorldTextRenderer& GetWorldTextRenderer() const;
33 
34  IBatchedScreenTextRenderableFactory& GetBatchedScreenTextRenderableFactory() const;
35 
36  Rendering::IRenderableFilter& GetRenderableFilters() const;
37 
38  private:
40  Rendering::Materials::MaterialIdGenerator& materialIdGenerator,
43  Rendering::StencilLayersController& stencilLayersController,
44  bool enableSupersampling);
45 
46 
47  Rendering::Materials::BatchedTextMaterialFactory* m_pBatchedTextMaterialFactory;
48  IBatchedScreenTextRenderableFactory* m_pBatchedScreenTextRenderableFactory;
49  IBatchedWorldTextRenderableFactory* m_pBatchedWorldTextRenderableFactory;
50  Fonts::IFontMaterialSetFactory* m_pFontMaterialSetFactory;
51  FontMaterialCache* m_pFontMaterialCache;
52  IScreenTextRenderer* m_pScreenTextRenderer;
53  IWorldTextRenderer* m_pWorldTextRenderer;
54 
55  GlBuffer<Rendering::VertexTypes::ScreenTextVertex>* m_pScreenTextVertexBuffer;
56  GlBuffer<Rendering::VertexTypes::WorldTextVertex>* m_pWorldTextVertexBuffer;
57  const GlBuffer<u16>* m_pQuadIndexBuffer;
58 
59  Rendering::RenderQueue* m_pRenderQueue;
60  Rendering::RenderableFilters* m_pRenderableFilters;
61  };
62  }
63 }