#include "CustomUniform.hpp"
#ifdef __EMSCRIPTEN__
#include <GL/gl.h>
#include <GLES3/gl3.h>
#else
#include <glad/glad.h>
#endif
namespace wren {
CustomUniformBase::CustomUniformBase(const std::string &name) : mName(name), mLocation(-1) {
}
void CustomUniformBase::upload(int value) const {
glUniform1i(mLocation, value);
}
void CustomUniformBase::upload(bool value) const {
glUniform1i(mLocation, value);
}
void CustomUniformBase::upload(float value) const {
glUniform1f(mLocation, value);
}
void CustomUniformBase::upload(const glm::vec2 &value) const {
glUniform2fv(mLocation, 1, glm::value_ptr(value));
}
void CustomUniformBase::upload(const glm::vec3 &value) const {
glUniform3fv(mLocation, 1, glm::value_ptr(value));
}
void CustomUniformBase::upload(const glm::vec4 &value) const {
glUniform4fv(mLocation, 1, glm::value_ptr(value));
}
void CustomUniformBase::upload(const glm::mat4 &value) const {
glUniformMatrix4fv(mLocation, 1, false, glm::value_ptr(value));
}
}