All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
StencilAreaShader.h
1 // Copyright (c) 2015 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "Shader.h"
6 #include "IdTypes.h"
7 #include "VectorMathDecl.h"
8 #include "Graphics.h"
9 #include <string>
10 
11 namespace Eegeo
12 {
13  namespace Data
14  {
15  namespace StencilArea
16  {
17  namespace Materials
18  {
20  {
21  public:
22  static StencilAreaShader* Create(const Rendering::TShaderId shaderId);
23 
24  void SetMVP(const m44& mvp) const
25  {
26  bool transpose = false;
27  SetUniformM44(mvp, m_mvpUniformLocation, transpose);
28  }
29 
30  void Use(Rendering::GLState& glState) const
31  {
32  UseProgram(glState);
33  }
34 
35  protected:
37  const Rendering::TShaderId shaderId,
38  const std::string& vertexShaderCode,
39  const std::string& fragmentShaderCode);
40 
41  private:
42  GLuint m_mvpUniformLocation;
43  };
44  }
45  }
46  }
47 }