ProjectedTextures
Prototype software for spacial augmented reality applications.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
ShaderManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QOpenGLShaderProgram>
4 #include <QGLWidget>
5 #include <QOpenGLBuffer>
6 #include <QOpenGLFunctions>
7 #include "RenderEnums.h"
8 
12 enum Shaders{
16 };
17 
26  public QGLWidget,
27  protected QOpenGLFunctions
28 {
29 
30 public:
31  ShaderManager(QWidget* parent = 0);
32  ~ShaderManager(void);
33 
36  QOpenGLShaderProgram* prepareViewportTexture();
37 
40  QOpenGLShaderProgram* prepareVertexColor(QMatrix4x4 modelMatrix, QMatrix4x4 viewMatrix, QMatrix4x4 projMatrix,
41  int colorSet, bool enableLambert, bool enableSpecular,
42  QVector3D lightPos, QVector3D cameraPos,
43  bool enableIntensityCorrection = false,
44  float shininess = 20.0f, QVector3D specularColor = QVector3D(1.0f,1.0f,1.0f)
45  );
48  QOpenGLShaderProgram* prepareNormal(QMatrix4x4 modelMatrix, QMatrix4x4 viewMatrix, QMatrix4x4 projMatrix);
49 
50 
51 protected:
52  QOpenGLShaderProgram viewportTexture;
54  QOpenGLShaderProgram vertexColor;
55  QOpenGLShaderProgram normal;
57  void initializeGL();
58  void initShaders();
59 };
60