All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ShadowPresentationModule.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 "Rendering.h"
8 #include "Lighting.h"
9 #include "Streaming.h"
10 #include "Culling.h"
11 
12 namespace Eegeo
13 {
14  namespace Modules
15  {
16  namespace Map
17  {
18  namespace Layers
19  {
21  {
22  public:
23 
25  Rendering::Materials::MaterialIdGenerator& materialIdGenerator,
26  Rendering::GlBufferPool& glBufferPool,
29  Rendering::Filters::RenderableRepository& renderableRepository,
31  Lighting::GlobalShadowing& globalShadowing,
33  const Rendering::EnvironmentFlatteningService& environmentFlatteningService,
34  Culling::CullingVolumeVisibilityUpdater& cullingVolumeVisibilityUpdater);
35 
37 
38  static ShadowPresentationModule* Create(Core::RenderingModule& renderingModule,
39  Core::LightingModule& lightingModule,
40  ShadowModelModule& shadowModelModule,
41  const Rendering::EnvironmentFlatteningService& environmentFlatteningService,
42  Culling::CullingVolumeVisibilityUpdater& cullingVolumeVisibilityUpdater);
43 
44  Rendering::Filters::PackedRenderableFilter& GetShadowRenderableFilter() const;
45  Rendering::Materials::ShadowMaterial& GetShadowOverlayMaterial() const;
46  Rendering::Renderables::WorldMeshRenderable& GetShadowOverlayRenderable() const;
47  private:
48  Rendering::Filters::ShadowPackedRenderableFilter* m_pShadowPackedRenderableFilter;
49  Rendering::Materials::ShadowMaterial* m_pShadowOverlayMaterial;
50  Rendering::Renderables::WorldMeshRenderable* m_pShadowOverlayRenderable;
51  };
52  }
53  }
54  }
55 }