Chrysalis - Renderer
Loading...
Searching...
No Matches
BaseOpenGLProgram.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_BASEOPENGLPROGRAM_H
2#define CHRYSALIS_BASEOPENGLPROGRAM_H
3
4#include <glad/gl.h>
5#include <glm/mat4x4.hpp>
6
7namespace Chrysalis {
9 public:
11 void initialize();
12
13 void bind() const;
14 static void release();
15 protected:
16 explicit BaseOpenGLProgram(const char* vertexShader, const char* fragmentShader);
17
18 void setUniformValue(const char *name, GLint value) const;
19 void setUniformValue(const char *name, GLfloat value) const;
20 void setUniformValue(const char *name, const glm::mat4x4& value) const;
21 void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) const;
22 private:
23 static GLint prepareShader(const char* shaderCode, GLenum shaderType);
24
25 const char* vertexShader_;
26 const char* fragmentShader_;
27
28 GLint program_ = 0;
29 };
30}
31
32#endif //CHRYSALIS_BASEOPENGLPROGRAM_H
void bind() const
Definition BaseOpenGLProgram.cpp:61
void setUniformValue(const char *name, GLint value) const
Definition BaseOpenGLProgram.cpp:69
static void release()
Definition BaseOpenGLProgram.cpp:65
~BaseOpenGLProgram()
Definition BaseOpenGLProgram.cpp:12
BaseOpenGLProgram(const char *vertexShader, const char *fragmentShader)
Definition BaseOpenGLProgram.cpp:9
void initialize()
Definition BaseOpenGLProgram.cpp:35
Definition Area.h:4