All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PolylineShader.h
1 #pragma once
2 
3 #include "PolylineShapes.h"
4 #include "Shader.h"
5 #include "Rendering.h"
6 
7 namespace Eegeo
8 {
9  namespace Shapes
10  {
11  namespace Polylines
12  {
14  {
15  public:
16  static PolylineShader* Create(const Rendering::TShaderId shaderId);
17 
18  PolylineShader(const Rendering::TShaderId shaderId, const std::string& vertexCode, const std::string& fragmentCode);
19 
20  void Use(Rendering::GLState& glState) const
21  {
22  UseProgram(glState);
23  }
24 
25  void SetModelViewProjection(const m44& modelViewProjection)
26  {
27  const bool transpose = false;
28  SetUniformM44(modelViewProjection, m_modelViewProjectionUniform, transpose);
29  }
30 
31  void SetWidth(const v2& halfWidth_miterLimit)
32  {
33  SetUniformV2(halfWidth_miterLimit, m_widthUniform);
34  }
35 
36  void SetColor(const v4& color)
37  {
38  SetUniformV4(color, m_colorUniform);
39  }
40 
41  void SetScalesWithMap(bool scalesWithMap)
42  {
43  SetUniformBool(scalesWithMap, m_scalesWithMapUniform);
44  }
45 
46  void SetViewportDimensions(const v2& viewportDimensions)
47  {
48  SetUniformV2(viewportDimensions, m_viewportDimensionsUniform);
49  }
50 
51  void SetMVP(const m44& mvp) const
52  {
53 
54  }
55 
56  private:
57  GLuint m_modelViewProjectionUniform;
58  GLuint m_widthUniform;
59  GLuint m_colorUniform;
60  GLuint m_scalesWithMapUniform;
61  GLuint m_viewportDimensionsUniform;
62  };
63  }
64  }
65 }