All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsStencilMirrorMaskShader.h
1 // Copyright (c) 2015 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "Interiors.h"
6 #include "Shader.h"
7 #include "ShaderMacros.h"
8 #include "VectorMath.h"
9 
10 namespace Eegeo
11 {
12  namespace Resources
13  {
14  namespace Interiors
15  {
17  {
18  public:
19  static InteriorsStencilMirrorMaskShader* Create(const Rendering::TShaderId shaderId);
20 
21  virtual void SetMVP(const m44& mvp) const {;}
22  virtual void SetUnpackModelViewProjectionMatrix(const m44& unpackModelViewProjectionMatrix) const;
23  virtual void SetColor(const v4& color) const;
24  virtual void Use(Rendering::GLState& glState) const;
25 
26  protected:
28  const Rendering::TShaderId shaderId,
29  const std::string& vertexShaderCode,
30  const std::string& fragmentShaderCode);
31 
32  private:
33  GLuint m_unpackModelViewProjectionMatrixUniformLocation;
34  GLuint m_colorUniformLocation;
35  };
36  }
37  }
38 }
39