Walls And Holes  1
shaderprogramonelight.h
Go to the documentation of this file.
1 #ifndef SHADERPROGRAMONELIGHT_H
2 #define SHADERPROGRAMONELIGHT_H
3 
4 #include <QOpenGLShaderProgram>
5 #include <QMatrix4x4>
6 #include <QVector3D>
7 
8 
13 public:
19 
23  void create();
24 
28  void bind();
29 
33  void release();
34 
38  void enableArrays();
39 
43  void disableArrays();
44 
45 
46 
47  /* Methods to bind buffers to attributes */
48  void setAttrPositionBuffer(int offset = 0, int stride = 0);
49  void setAttrNormalBuffer(int offset = 0, int stride = 0);
50  void setAttrReflSpecularBuffer(int offset = 0, int stride = 0);
51  void setAttrReflDiffuseBuffer(int offset = 0, int stride = 0);
52  void setAttrReflAmbientBuffer(int offset = 0, int stride = 0);
53  void setAttrShininessBuffer(int offset = 0, int stride = 0);
54 
55  /* Methods to set uniforms */
56  void setUniformMVP(QMatrix4x4 mat);
57  void setUniformLightPosition(QVector3D pos);
58  void setUniformCameraPosition(QVector3D pos);
59  void setUniformAmbientColor(QVector3D color);
60  void setUniformSourceSpecularColor(QVector3D color);
61  void setUniformSourceDiffuseColor(QVector3D color);
62 
63 protected:
64  QSharedPointer<QOpenGLShaderProgram> mProgram;
65 
66  // Vertex attribute locations.
73 
74  // Uniform locations.
75  int mUnifMVP;
81 };
82 
83 #endif // SHADERPROGRAMONELIGHT_H
void create()
Creates the program. Assumes an OpenGL context is bound.
Definition: shaderprogramonelight.cpp:8
int mAttrShininess
Definition: shaderprogramonelight.h:72
void setUniformLightPosition(QVector3D pos)
Definition: shaderprogramonelight.cpp:87
void setUniformSourceDiffuseColor(QVector3D color)
Definition: shaderprogramonelight.cpp:103
void bind()
Binds the OpenGL program.
Definition: shaderprogramonelight.cpp:30
void setUniformMVP(QMatrix4x4 mat)
Definition: shaderprogramonelight.cpp:83
int mAttrNormal
Definition: shaderprogramonelight.h:68
int mUnifCameraPosition
Definition: shaderprogramonelight.h:77
int mAttrReflSpecular
Definition: shaderprogramonelight.h:69
int mUnifSourceDiffuseColor
Definition: shaderprogramonelight.h:80
void setAttrReflDiffuseBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:70
int mUnifAmbientColor
Definition: shaderprogramonelight.h:78
void setAttrReflSpecularBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:66
void release()
Unbinds the OpenGL program.
Definition: shaderprogramonelight.cpp:34
int mAttrReflAmbient
Definition: shaderprogramonelight.h:71
void enableArrays()
Enables all relevant arrays.
Definition: shaderprogramonelight.cpp:39
int mUnifSourceSpecularColor
Definition: shaderprogramonelight.h:79
Wrapper for the &#39;onelight&#39; GLSL program.
Definition: shaderprogramonelight.h:12
void setAttrReflAmbientBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:74
int mUnifMVP
Definition: shaderprogramonelight.h:75
void setAttrShininessBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:78
void setUniformCameraPosition(QVector3D pos)
Definition: shaderprogramonelight.cpp:91
int mAttrPosition
Definition: shaderprogramonelight.h:67
QSharedPointer< QOpenGLShaderProgram > mProgram
Definition: shaderprogramonelight.h:64
int mUnifLightPosition
Definition: shaderprogramonelight.h:76
int mAttrReflDiffuse
Definition: shaderprogramonelight.h:70
void setAttrPositionBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:58
void setUniformAmbientColor(QVector3D color)
Definition: shaderprogramonelight.cpp:95
void setAttrNormalBuffer(int offset=0, int stride=0)
Definition: shaderprogramonelight.cpp:62
ShaderProgramOneLight()
This constructor DOES NOT CREATE THE PROGRAM. Call create() before using any other methods...
Definition: shaderprogramonelight.cpp:3
void setUniformSourceSpecularColor(QVector3D color)
Definition: shaderprogramonelight.cpp:99
void disableArrays()
Disables all relevant arrays.
Definition: shaderprogramonelight.cpp:48