mirror of
https://github.com/guezoloic/LearnOpenGL.git
synced 2026-01-25 09:34:16 +00:00
feat(shader): add few functions
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user