Terminus
program.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
5 #include <QMatrix4x4>
6 #include <QMatrix3x3>
7 #include <QVector4D>
8 #include <QVector3D>
9 
10 class QOpenGLShaderProgram;
11 
12 namespace terminus
13 {
14 
18 class Program
19 {
20 public:
21  Program();
22  Program(std::string vertexSrc, std::string fragmentSrc);
23  virtual ~Program();
24 
30  virtual void allocate();
31 
37  virtual void deallocate();
38 
39  virtual void bind();
40  virtual void release();
41 
42  virtual QOpenGLShaderProgram & program();
43 
44  virtual void bindAttributeLocation(std::string name, int location);
45  virtual void setUniform(std::string name, const QMatrix4x4 & value);
46  virtual void setUniform(std::string name, const QMatrix3x3 & value);
47  virtual void setUniform(std::string name, const QVector3D value);
48  virtual void setUniform(std::string name, const QVector4D value);
49  virtual void setUniform(std::string name, float value);
50  virtual void setUniform(std::string name, int value);
51  virtual void setUniform(std::string name, const QVector4D * values, int count);
52 
53 private:
54  std::string m_vertexSrc;
55  std::string m_fragmentSrc;
56 
57  QOpenGLShaderProgram * m_program;
58 
59  bool m_isBound;
60  bool m_isOnGPU;
61 };
62 
63 } //namespace terminus
virtual void setUniform(std::string name, const QMatrix4x4 &value)
Definition: program.cpp:89
virtual void deallocate()
Deallocates space on the GPU.
Definition: program.cpp:41
virtual void allocate()
Allocates space on the GPU.
Definition: program.cpp:28
The program class implements the basic functionality used for binding programs to openGL...
Definition: program.h:18
virtual void bindAttributeLocation(std::string name, int location)
Definition: program.cpp:84
virtual void bind()
Definition: program.cpp:64
Program()
Definition: program.cpp:8
virtual QOpenGLShaderProgram & program()
Definition: program.cpp:59
Definition: eventhandler.cpp:18
virtual void release()
Definition: program.cpp:74
virtual ~Program()
Definition: program.cpp:23