All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UnityInteriorsMaterialFactoryProvider.h
1 #pragma once
2 
3 #include "IInteriorsMaterialFactoryProvider.h"
4 #include "UnityCallbacks.h"
5 #include "Rendering.h"
6 #include "UnityInteriorsMaterialFactory.h"
7 
8 namespace Eegeo
9 {
10  namespace Unity
11  {
13  {
14  public:
15 
17  const UnityCallbacks& unityCallbacks,
18  Rendering::Shaders::ShaderIdGenerator& shaderIdGenerator,
19  Rendering::Materials::MaterialIdGenerator& materialIdGenerator,
21  const Lighting::GlobalLighting& globalLighting,
24 
26 
27  Resources::Interiors::IInteriorsMaterialFactory& GetInteriorsAggregateMaterialFactory() const override;
28 
29  // :TODO: IIUC this is just a shader for a fullscreen pass that obeys the stencil test - possibly this
30  // sort of thing should be part of a graphics subsystem, rather than the interior materials.
31  Resources::Interiors::InteriorsStencilMirrorMaskShader& GetInteriorsStencilMirrorMaskShader() override;
32 
33  private:
34 
35  Resources::Interiors::InteriorsShader* m_pInteriorsShader;
36  Resources::Interiors::InteriorsStencilMirrorMaskShader* m_pInteriorsStencilMirrorMaskShader;
37  UnityInteriorsMaterialFactory* m_pUnityInteriorsMaterialFactory;
38  const UnityCallbacks m_unityCallbacks;
39  };
40  }
41 }
42