feat(shader): add few functions

This commit is contained in:
2025-11-20 06:52:30 +01:00
parent 6ccbc1c4e9
commit 1c78ff27e7
2 changed files with 10 additions and 10 deletions

View File

@@ -6,7 +6,7 @@
#include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp> #include <glm/gtc/type_ptr.hpp>
class Shaders class Shader
{ {
private: private:
GLuint vertexShader; GLuint vertexShader;
@@ -18,8 +18,8 @@ private:
void compileInProgram(); void compileInProgram();
public: public:
Shaders(const char* vertexShaderSource, const char* fragmentShaderSource); Shader(const char* vertexShaderSource, const char* fragmentShaderSource);
~Shaders(); ~Shader();
GLuint getProgram() const; GLuint getProgram() const;
void use() const; void use() const;

View File

@@ -1,6 +1,6 @@
#include "shader.hpp" #include "shader.hpp"
Shaders::Shaders(const char* vertexShaderSource, const char* fragmentShaderSource) Shader::Shader(const char* vertexShaderSource, const char* fragmentShaderSource)
{ {
vertexShader = glCreateShader(GL_VERTEX_SHADER); vertexShader = glCreateShader(GL_VERTEX_SHADER);
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER); fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
@@ -12,19 +12,19 @@ Shaders::Shaders(const char* vertexShaderSource, const char* fragmentShaderSourc
compileInProgram(); compileInProgram();
} }
void Shaders::addVertShader(const char* vertexShaderSource) void Shader::addVertShader(const char* vertexShaderSource)
{ {
glShaderSource(vertexShader, 1, &vertexShaderSource, nullptr); glShaderSource(vertexShader, 1, &vertexShaderSource, nullptr);
glCompileShader(vertexShader); glCompileShader(vertexShader);
} }
void Shaders::addFragShader(const char* fragmentShaderSource) void Shader::addFragShader(const char* fragmentShaderSource)
{ {
glShaderSource(fragmentShader, 1, &fragmentShaderSource, nullptr); glShaderSource(fragmentShader, 1, &fragmentShaderSource, nullptr);
glCompileShader(fragmentShader); glCompileShader(fragmentShader);
} }
void Shaders::compileInProgram() void Shader::compileInProgram()
{ {
glAttachShader(shaderProgram, vertexShader); glAttachShader(shaderProgram, vertexShader);
glAttachShader(shaderProgram, fragmentShader); glAttachShader(shaderProgram, fragmentShader);
@@ -36,17 +36,17 @@ void Shaders::compileInProgram()
glDeleteShader(fragmentShader); glDeleteShader(fragmentShader);
} }
Shaders::~Shaders() Shader::~Shader()
{ {
glDeleteProgram(shaderProgram); glDeleteProgram(shaderProgram);
} }
void Shaders::use() const void Shader::use() const
{ {
glUseProgram(shaderProgram); glUseProgram(shaderProgram);
} }
GLuint Shaders::getProgram() const GLuint Shader::getProgram() const
{ {
return shaderProgram; return shaderProgram;
} }