All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CoreModule.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 "Helpers.h"
9 #include "GLHelpers.h"
10 #include "Web.h"
11 #include "EnvironmentCharacterSet.h"
12 #include "IdTypes.h"
13 #include "Config.h"
14 #include "Text.h"
15 #include "AsyncTexturing.h"
16 #include "Icons.h"
17 
18 namespace Eegeo
19 {
20  namespace Modules
21  {
22  namespace Core
23  {
24  class CoreModule : protected Eegeo::NonCopyable
25  {
26  public:
27 
28  ~CoreModule();
29 
30  static CoreModule* Create(
31  const Config::PlatformConfig& platformConfig,
32  const Modules::IPlatformAbstractionModule& platformAbstractionModule
33  );
34 
35  RenderingModule& GetRenderingModule() const;
36  LightingModule& GetLightingModule() const;
37  FontsModule& GetFontsModule() const;
38  AsyncLoadersModule& GetAsyncLoadersModule() const;
39  DebugRenderingModule& GetDebugRenderingModule() const;
40  SceneModelsModule& GetSceneModelsModule() const;
41  Text::ScreenTextRenderingModule& GetScreenTextRenderingModule() const;
42  Icons::IconsModule& GetIconsModule() const;
43 
44  private:
45  CoreModule(
46  RenderingModule* pRenderingModule,
47  LightingModule* pLightingModule,
48  FontsModule* pFontsModule,
49  Icons::IconsModule* pIconsModule,
50  AsyncLoadersModule* pAsyncLoadersModule,
51  DebugRenderingModule* pDebugRenderingModule,
52  SceneModelsModule* pSceneModelsModule,
53  Text::ScreenTextRenderingModule* pScreenTextRenderingModule
54  );
55 
56  RenderingModule* m_pRenderingModule;
57  LightingModule* m_pLightingModule;
58  FontsModule* m_pFontsModule;
59  Icons::IconsModule* m_pIconsModule;
60  AsyncLoadersModule* m_pAsyncLoadersModule;
61  DebugRenderingModule* m_pDebugRenderingModule;
62  SceneModelsModule* m_pSceneModelsModule;
63  Text::ScreenTextRenderingModule* m_pScreenTextRenderingModule;
64  };
65  }
66  }
67 }