All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RouteViewShader.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Shader.h"
6 #include "Rendering.h"
7 
8 namespace Eegeo
9 {
10  namespace Routes
11  {
12  namespace View
13  {
15  {
16  public:
17  static RouteViewShader* Create(const Rendering::TShaderId shaderId);
18 
19  RouteViewShader(const Rendering::TShaderId shaderId, const std::string& vertexCode, const std::string& fragmentCode);
20 
21  void Use(Rendering::GLState& glState) const
22  {
23  UseProgram(glState);
24  }
25 
26  void SetMVP(const m44& mvp) const
27  {
28  bool transpose = false;
29  SetUniformM44(mvp, m_modelViewProjectionUniform, transpose);
30  }
31 
32  void SetAltitudeFade(float fade) const
33  {
34  SetUniformFloat(fade, m_altitudeFadeUniform);
35  }
36 
37  void SetThickness(float thickness) const
38  {
39  SetUniformFloat(thickness, m_thicknessUniform);
40  }
41 
42  private:
43  GLuint m_modelViewProjectionUniform;
44  GLuint m_altitudeFadeUniform;
45  GLuint m_thicknessUniform;
46  };
47  }
48  }
49 }