2026-05-01 20:06:54 -05:00
|
|
|
//
|
|
|
|
|
// Created by lbmas on 4/29/2026.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "ShaderProgram.h"
|
|
|
|
|
|
|
|
|
|
#include <fstream>
|
|
|
|
|
|
2026-05-02 21:24:21 -04:00
|
|
|
#include <glad/gl.h>
|
2026-05-01 20:06:54 -05:00
|
|
|
|
|
|
|
|
void ShaderProgram::bind()
|
|
|
|
|
{
|
|
|
|
|
glUseProgram(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderProgram::unbind()
|
|
|
|
|
{
|
|
|
|
|
glUseProgram(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderProgram::setFloat(std::string_view name, float value) const
|
|
|
|
|
{
|
2026-05-02 21:24:21 -04:00
|
|
|
glUniform1f(glGetUniformLocation(id, name.data()), value);
|
2026-05-01 20:06:54 -05:00
|
|
|
}
|
|
|
|
|
|
2026-05-02 21:24:21 -04:00
|
|
|
void ShaderProgram::setInt(std::string_view name, int value) const
|
2026-05-01 20:06:54 -05:00
|
|
|
{
|
2026-05-02 21:24:21 -04:00
|
|
|
glUniform1i(glGetUniformLocation(id, name.data()), value);
|
2026-05-01 20:06:54 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderProgram::setVec3(std::string_view name, const glm::vec3& value) const
|
|
|
|
|
{
|
2026-05-02 21:24:21 -04:00
|
|
|
glUniform3fv(glGetUniformLocation(id, name.data()), 1, &value[0]);
|
2026-05-01 20:06:54 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderProgram::setVec4(std::string_view name, const glm::vec4& value) const
|
|
|
|
|
{
|
2026-05-02 21:24:21 -04:00
|
|
|
glUniform4fv(glGetUniformLocation(id, name.data()), 1, &value[0]);
|
2026-05-01 20:06:54 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShaderProgram::setMat4(std::string_view name, const glm::mat4& value) const
|
|
|
|
|
{
|
2026-05-02 21:24:21 -04:00
|
|
|
glUniformMatrix4fv(glGetUniformLocation(id, name.data()), 1, GL_FALSE, &value[0][0]);
|
2026-05-01 20:06:54 -05:00
|
|
|
}
|
|
|
|
|
|