mirror of
https://github.com/guezoloic/LearnOpenGL.git
synced 2026-01-25 03:34:15 +00:00
- rename IDs - replace constructor without doing anything - add compile function (it was the older constructor method)
35 lines
921 B
C++
Executable File
35 lines
921 B
C++
Executable File
#ifndef SHADER_HPP
|
|
#define SHADER_HPP
|
|
|
|
#include "glad/glad.h"
|
|
|
|
class Shader
|
|
{
|
|
private:
|
|
GLuint vertexShaderID; // vertex shader id
|
|
GLuint fragmentShaderID; // fragment shader id
|
|
|
|
// final compiled shader program id used by the gpu
|
|
GLuint shaderProgramID;
|
|
|
|
// compile vertex shader source code
|
|
void addVertShader(const char* vertexSource);
|
|
// compile fragment shader source code
|
|
void addFragShader(const char* fragmentSource);
|
|
// link both compile vertex and fragment shader
|
|
void compileInProgram();
|
|
|
|
public:
|
|
// Does nothing apart initializing all IDs to 0
|
|
Shader();
|
|
// compile and link vertex and fragment into the shader struct
|
|
void compile(const char* vertexSource, const char* fragmentSource);
|
|
// free shader program
|
|
~Shader();
|
|
|
|
GLuint getShaderProgramID() const;
|
|
// activate shader program into gpu pipeline
|
|
void use() const;
|
|
};
|
|
|
|
#endif |