Walls And Holes  1
simpletexturedshader.h
Go to the documentation of this file.
1 #ifndef SIMPLETEXTUREDSHADER_H
2 #define SIMPLETEXTUREDSHADER_H
3 
4 #include <QOpenGLShaderProgram>
5 #include <QMatrix4x4>
6 #include <QVector3D>
7 #include <QOpenGLTexture>
8 
9 
14 public:
20 
24  void create();
25 
26 
30  void destroy();
31 
32 
36  void bind();
37 
41  void release();
42 
46  void enableArrays();
47 
51  void disableArrays();
52 
53 
54 
55  /* Methods to bind buffers to attributes */
56  void setAttrPositionBuffer(int offset = 0, int stride = 0);
57  void setAttrNormalBuffer(int offset = 0, int stride = 0);
58  void setAttrReflSpecularBuffer(int offset = 0, int stride = 0);
59  void setAttrReflDiffuseBuffer(int offset = 0, int stride = 0);
60  void setAttrReflAmbientBuffer(int offset = 0, int stride = 0);
61  void setAttrShininessBuffer(int offset = 0, int stride = 0);
62  void setAttrTexCoordsBuffer(int offset = 0, int stride = 0);
63 
64  /* Methods to set uniforms */
65  void setUniformMVP(QMatrix4x4 mat);
66  void setUniformPointToLight(QVector3D pos);
67  void setUniformCameraPosition(QVector3D pos);
68  void setUniformAmbientColor(QVector3D color);
69  void setUniformSourceSpecularColor(QVector3D color);
70  void setUniformSourceDiffuseColor(QVector3D color);
71 
72 
73  void bindUniformTexture(QOpenGLTexture &texture);
74  void releaseUniformTexture(QOpenGLTexture &texture);
75 
76 protected:
77  QSharedPointer<QOpenGLShaderProgram> mProgram;
78 
79  // Vertex attribute locations.
87 
88  // Uniform locations.
89  int mUnifMVP;
96 };
97 
98 #endif // SIMPLETEXTUREDSHADER_H
void setAttrReflSpecularBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:77
void bind()
Binds the OpenGL program.
Definition: simpletexturedshader.cpp:39
void setUniformCameraPosition(QVector3D pos)
Definition: simpletexturedshader.cpp:106
void setUniformAmbientColor(QVector3D color)
Definition: simpletexturedshader.cpp:110
int mUnifAmbientColor
Definition: simpletexturedshader.h:92
int mAttrTexCoords
Definition: simpletexturedshader.h:86
int mAttrReflAmbient
Definition: simpletexturedshader.h:84
void setUniformSourceSpecularColor(QVector3D color)
Definition: simpletexturedshader.cpp:114
void bindUniformTexture(QOpenGLTexture &texture)
Definition: simpletexturedshader.cpp:123
void setUniformPointToLight(QVector3D pos)
Definition: simpletexturedshader.cpp:102
void create()
Creates the program. Assumes an OpenGL context is bound.
Definition: simpletexturedshader.cpp:9
void destroy()
Destroys the program. Assumes an OpenGL context is bound.
Definition: simpletexturedshader.cpp:34
void setAttrReflDiffuseBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:81
void setAttrReflAmbientBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:85
int mAttrPosition
Definition: simpletexturedshader.h:80
void setUniformSourceDiffuseColor(QVector3D color)
Definition: simpletexturedshader.cpp:118
int mUnifPointToLight
Definition: simpletexturedshader.h:90
QSharedPointer< QOpenGLShaderProgram > mProgram
Definition: simpletexturedshader.h:77
int mUnifSourceDiffuseColor
Definition: simpletexturedshader.h:94
int mUnifCameraPosition
Definition: simpletexturedshader.h:91
void releaseUniformTexture(QOpenGLTexture &texture)
Definition: simpletexturedshader.cpp:128
void setAttrTexCoordsBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:93
Wrapper for the &#39;onelighttexture&#39; GLSL program.
Definition: simpletexturedshader.h:13
int mUnifSourceSpecularColor
Definition: simpletexturedshader.h:93
int mAttrNormal
Definition: simpletexturedshader.h:81
int mAttrReflSpecular
Definition: simpletexturedshader.h:82
void setAttrShininessBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:89
int mUnifMVP
Definition: simpletexturedshader.h:89
SimpleTexturedShader()
This constructor DOES NOT CREATE THE PROGRAM. Call create() before using any other methods...
Definition: simpletexturedshader.cpp:3
int mUnifTexture
Definition: simpletexturedshader.h:95
void setAttrNormalBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:73
void disableArrays()
Disables all relevant arrays.
Definition: simpletexturedshader.cpp:58
void setUniformMVP(QMatrix4x4 mat)
Definition: simpletexturedshader.cpp:98
void setAttrPositionBuffer(int offset=0, int stride=0)
Definition: simpletexturedshader.cpp:69
int mAttrReflDiffuse
Definition: simpletexturedshader.h:83
void enableArrays()
Enables all relevant arrays.
Definition: simpletexturedshader.cpp:48
int mAttrShininess
Definition: simpletexturedshader.h:85
void release()
Unbinds the OpenGL program.
Definition: simpletexturedshader.cpp:43