Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
platform
Modules
Core
SceneModelsModule.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 "Lighting.h"
8
#include "Modules.h"
9
#include "DebugRendering.h"
10
#include "SceneModelFactory.h"
11
#include "Helpers.h"
12
#include "AsyncModels.h"
13
#include "Web.h"
14
15
namespace
Eegeo
16
{
17
namespace
Modules
18
{
19
namespace
Core
20
{
21
class
SceneModelsModule
:
protected
Eegeo::NonCopyable
22
{
23
public
:
24
SceneModelsModule
(
Rendering::GlBufferPool
& glBufferPool,
25
Rendering::VertexLayouts::VertexLayoutPool
& vertexLayoutPool,
26
Rendering::VertexLayouts::VertexBindingPool
& vertexBindingPool,
27
Rendering::Shaders::ShaderIdGenerator
& shaderIdGenerator,
28
Rendering::Materials::MaterialIdGenerator
& materialIdGenerator,
29
Lighting::GlobalLighting
& globalLighting,
30
Lighting::GlobalFogging
& globalFogging,
31
Helpers::IFileIO
& fileIO,
32
Web::IWebLoadRequestFactory
& webLoadRequestFactory,
33
Helpers::IHttpCache
& httpCache,
34
Rendering::AsyncTexturing::LocalAsyncTextureLoader
& localAsyncTextureLoader,
35
Rendering::AsyncTexturing::HttpAsyncTextureLoader
& httpAsyncTextureLoader,
36
Rendering::RenderableFilters
& renderableFilters,
37
DebugRendering::DebugRenderer
& debugRenderer);
38
~
SceneModelsModule
();
39
40
static
SceneModelsModule
* Create(
RenderingModule
& renderingModule,
41
LightingModule
& lightingModule,
42
DebugRenderingModule
& debugRenderingModule,
43
AsyncLoadersModule
& asyncLoadersModule,
44
Helpers::IFileIO
& fileIO,
45
Web::IWebLoadRequestFactory
& webLoadRequestFactory,
46
Helpers::IHttpCache
& httpCache);
47
48
void
ReleaseUnusedResources();
49
50
Rendering::SceneModels::SceneModelLoader
& GetLocalModelLoader()
const
{
return
*m_pLocalFileLoader; }
51
Io::AsyncModels::HttpAsyncModelLoader
& GetAsyncModelLoader()
const
{
return
*m_pAsyncModelLoader; }
52
53
Rendering::SceneModels::SceneModelFactory
& GetLocalSceneModelFactory()
const
{
return
*m_pLocalFactory; }
54
Rendering::SceneModels::SceneModelFactory
& GetHttpSceneModelFactory()
const
{
return
*m_pHttpFactory; }
55
56
Rendering::SceneModels::SceneModelFactory::TTextureRepo
& GetTextureResourceRepository()
const
{
return
*m_pTextureRepo; }
57
Rendering::SceneModels::SceneModelFactory::TMaterialRepo
& GetMaterialResourceRepository()
const
{
return
*m_pMaterialRepo; }
58
Rendering::SceneModels::SceneModelFactory::TMeshRepo
& GetMeshResourceRepository()
const
{
return
*m_pMeshRepo; }
59
Rendering::SceneModels::SceneModelFactory::TTriStripMeshRepo
& GetTriStripMeshResourceRepository()
const
{
return
*m_pTriStripMeshRepo; }
60
Rendering::Filters::SceneModelRenderableFilter
& GetSceneModelRenderableFilter()
const
{
return
*m_pSceneModelRenderableFilter; }
61
62
63
private
:
64
65
Rendering::SceneModels::SceneModelLoader
* m_pLocalFileLoader;
66
Rendering::SceneModels::SceneModelFactory
* m_pLocalFactory;
67
Rendering::SceneModels::SceneModelFactory
* m_pHttpFactory;
68
Rendering::SceneModels::SceneModelFactory::TTextureRepo
* m_pTextureRepo;
69
Rendering::SceneModels::SceneModelFactory::TMaterialRepo
* m_pMaterialRepo;
70
Rendering::SceneModels::SceneModelFactory::TMeshRepo
* m_pMeshRepo;
71
Rendering::SceneModels::SceneModelFactory::TTriStripMeshRepo
* m_pTriStripMeshRepo;
72
Rendering::MeshFactories::SceneModelMeshFactory
* m_pMeshFactory;
73
Rendering::Filters::SceneModelRenderableFilter
* m_pSceneModelRenderableFilter;
74
75
Io::AsyncModels::HttpAsyncModelLoader
* m_pAsyncModelLoader;
76
77
Rendering::RenderableFilters
& m_renderableFilters;
78
};
79
}
80
}
81
}
Generated on Sat Jun 10 2023 02:00:31 for eeGeo Platform SDK by
1.8.3.1