Pioneer
Program.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _GRAPHICS_OGLPROGRAM_H
5 #define _GRAPHICS_OGLPROGRAM_H
6 /*
7  * The new 'Shader' class
8  * This is a base class without specific uniforms
9  */
10 #include "OpenGLLibs.h"
11 #include "Uniform.h"
12 
13 #include <string>
14 
15 namespace Graphics {
16 
17  namespace OGL {
18 
19  struct ShaderException {};
20 
21  struct ProgramException {};
22 
23  class Program {
24  public:
25  Program();
26  Program(const std::string &name, const std::string &defines);
27  virtual ~Program();
28  void Reload();
29  virtual void Use();
30  virtual void Unuse();
31  bool Loaded() const { return success; }
32 
33  // Uniforms.
39 
56 
58 
59  //Light uniform parameters
60  struct UniformLight {
64  };
66 
67  protected:
68  static GLuint s_curProgram;
69 
70  void LoadShaders(const std::string &, const std::string &defines);
71  virtual void InitUniforms();
72  std::string m_name;
73  std::string m_defines;
74  GLuint m_program;
75  bool success;
76  };
77 
78  } // namespace OGL
79 
80 } // namespace Graphics
81 #endif
Definition: Program.h:23
Uniform heatingMatrix
Definition: Program.h:53
Uniform uViewMatrixInverse
Definition: Program.h:36
Uniform uViewProjectionMatrix
Definition: Program.h:37
Uniform texture4
Definition: Program.h:49
void LoadShaders(const std::string &, const std::string &defines)
Definition: Program.cpp:241
Uniform uNormalMatrix
Definition: Program.h:38
Uniform texture0
Definition: Program.h:45
Uniform texture6
Definition: Program.h:51
UniformLight lights[4]
Definition: Program.h:65
Uniform invLogZfarPlus1
Definition: Program.h:40
Uniform uProjectionMatrix
Definition: Program.h:34
Uniform shininess
Definition: Program.h:44
Program()
Definition: Program.cpp:196
Uniform heatingAmount
Definition: Program.h:55
Uniform emission
Definition: Program.h:42
std::string m_name
Definition: Program.h:72
virtual void Use()
Definition: Program.cpp:227
Uniform uViewMatrix
Definition: Program.h:35
std::string m_defines
Definition: Program.h:73
Uniform heatGradient
Definition: Program.h:52
Uniform texture5
Definition: Program.h:50
Uniform heatingNormal
Definition: Program.h:54
virtual void InitUniforms()
Definition: Program.cpp:279
Uniform sceneAmbient
Definition: Program.h:57
bool Loaded() const
Definition: Program.h:31
Uniform texture1
Definition: Program.h:46
Uniform specular
Definition: Program.h:43
bool success
Definition: Program.h:75
Uniform texture3
Definition: Program.h:48
Uniform texture2
Definition: Program.h:47
static GLuint s_curProgram
Definition: Program.h:68
Uniform diffuse
Definition: Program.h:41
void Reload()
Definition: Program.cpp:219
virtual ~Program()
Definition: Program.cpp:214
GLuint m_program
Definition: Program.h:74
virtual void Unuse()
Definition: Program.cpp:234
Definition: Uniform.h:21
Definition: Background.h:13
Definition: Program.h:21
Definition: Program.h:60
Uniform position
Definition: Program.h:63
Uniform diffuse
Definition: Program.h:61
Uniform specular
Definition: Program.h:62
Definition: Program.h:19