All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WeatherOverlayMaterial2.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "IMaterial.h"
6 #include "Types.h"
7 #include "IdTypes.h"
8 #include "WeatherOverlayShader.h"
9 #include "Weather.h"
10 #include "Rendering.h"
11 #include <string>
12 
13 
14 namespace Eegeo
15 {
16  namespace Rendering
17  {
18  namespace Materials
19  {
21  {
22  public:
24  const TMaterialId materialId,
25  const std::string& name,
27  Eegeo::Weather::WeatherOverlayController & weatherOverlayController
28  );
29 
30  const TMaterialId GetId() const{ return m_id;}
31 
32  const Shader& GetShader() const{return m_shader;}
33 
34  void SetState(Rendering::GLState& glState) const;
35 
36  void BindUniformShaderParams(Rendering::GLState& glState, const Weather::WeatherEffectLayer2& layerOne, const Weather::WeatherEffectLayer2& layerTwo, const float intensity) const;
37 
38  void SetStatePerRenderable(const Rendering::RenderableBase* renderableBase, Rendering::GLState& glState) const { }
39  const std::string& GetName() const {return m_name;}
40 
41  void SetTextureId(AsyncTexturing::IAsyncTexture* textureId) { m_textureId = textureId; }
42 
43  private:
44  const TMaterialId m_id;
45  const std::string m_name;
46 
48 
50  Eegeo::Weather::WeatherOverlayController & m_weatherOverlayController;
51  };
52  }
53  }
54 }