All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RenderingModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Rendering.h"
7 #include "GLState.h"
8 
9 namespace Eegeo
10 {
11  namespace Modules
12  {
13  namespace Core
14  {
16  {
17  public:
18  RenderingModule(const bool bufferPoolingEnabled);
19  ~RenderingModule();
20  static RenderingModule* Create(const bool bufferPoolingEnabled);
21 
22  Rendering::GlBufferPool& GetGlBufferPool() const;
23  Rendering::VertexLayouts::VertexLayoutPool& GetVertexLayoutPool() const;
24  Rendering::VertexLayouts::VertexBindingPool& GetVertexBindingPool() const;
25  Rendering::RenderQueue& GetRenderQueue() const;
26  Rendering::RenderableFilters& GetRenderableFilters() const;
27  Rendering::Shaders::ShaderIdGenerator& GetShaderIdGenerator() const;
28  Rendering::Materials::MaterialIdGenerator& GetMaterialIdGenerator() const;
29  Rendering::Materials::NullMaterialFactory& GetNullMaterialFactory() const;
30  Rendering::Filters::RenderableRepository& GetRenderableRepository() const;
31  Rendering::MeshFactories::TextMeshFactory& GetTextMeshFactory() const;
32  Rendering::MeshFactories::DiffuseMeshFactory& GetDiffuseMeshFactory() const;
33  Rendering::MeshFactories::PackedTwoTextureDiffuseMeshFactory& GetPackedTwoTextureDiffuseMeshFactory() const;
34  Rendering::MeshFactories::PositionMeshFactory& GetPositionMeshFactory() const;
35  Rendering::Shaders::ColorShader& GetColorShader() const;
36  Rendering::StencilLayersController& GetStencilLayersController() const;
37  Rendering::RenderOptionsModel& GetRenderOptionsModel() const;
38  Rendering::IRenderingService& GetRenderingService() const;
39 
43  private:
44  Rendering::GlBufferPool* m_pGlBufferPool;
45  Rendering::VertexLayouts::VertexLayoutPool* m_pVertexLayoutPool;
46  Rendering::VertexLayouts::VertexBindingPool* m_pVertexBindingPool;
47  Rendering::RenderQueue* m_pRenderQueue;
48  Rendering::RenderableFilters* m_pRenderableFilters;
49  Rendering::Shaders::ShaderIdGenerator* m_pShaderIdGenerator;
50  Rendering::Materials::MaterialIdGenerator* m_pMaterialIdGenerator;
51  Rendering::Materials::NullMaterialFactory* m_pNullMaterialFactory;
52  Rendering::Shaders::NullShader* m_pNullShader;
53  Rendering::Materials::NullMaterial* m_pSingletonNullMaterialDeprecated;
54  Rendering::MeshFactories::PackedTwoTextureDiffuseMeshFactory* m_pPackedTwoTextureDiffuseMeshFactory;
55  Rendering::MeshFactories::DiffuseMeshFactory* m_pDiffuseMeshFactory;
57  Rendering::MeshFactories::PositionMeshFactory* m_pPositionMeshFactory;
58  Rendering::Filters::RenderableRepository* m_pRenderableRepository;
59  Rendering::Shaders::ColorShader* m_pColorShader;
60  Rendering::StencilLayersController* m_pStencilLayersController;
61  Rendering::RenderOptionsModel* m_pRenderOptionsModel;
62  Rendering::IRenderingService* m_pRenderingService;
63  };
64  }
65  }
66 }