OpenGL/headers/shader.hpp
2025-05-27 22:22:34 -04:00

26 lines
740 B
C++

#ifndef SHADER_H
#define SHADER_H
#include <glad/glad.h>
#include <glm/glm.hpp>
#include <string>
class Shader {
public:
Shader(const char *vertexPath, const char *fragmentPath);
~Shader();
void use();
void setInt(const std::string &name, int value);
void setFloat(const std::string &name, float value);
void setVec3(const std::string &name, glm::vec3 value);
void setMat4(const std::string &name, glm::mat4 value);
private:
unsigned int ID;
unsigned int shaderCMPL(GLenum type, const char *src);
void shaderERR(unsigned int shader);
unsigned int shaderProgramCMPL(const char *vertexSource,
const char *fragmentSource);
void shaderProgramERR(unsigned int shaderProgram);
};
#endif