#include <stdbool.h>
#include <cglm/struct.h>
#include <GL/glew.h>

GLuint loadShaders(const char* vertexShaderPath, const char* fragmentShaderPath);

void shaderSetBool(GLuint ID, char* name, bool value);
void shaderSetInt(GLuint ID, char* name, int value);
void shaderSetFloat(GLuint ID, char* name, float value);

void shaderSetVec2(GLuint ID, char* name, vec2s* ref);
void shaderSet2f(GLuint ID, char* name, float x, float y);

void shaderSetVec3(GLuint ID, char* name, vec3s* ref);
void shaderSet3f(GLuint ID, char* name, float x, float y, float z);

void shaderSetVec4(GLuint ID, char* name, vec4s* ref);
void shaderSet4f(GLuint ID, char* name, float x, float y, float z, float w);

void shaderSetMat2(GLuint ID, char* name, mat2s* ref);
void shaderSetMat3(GLuint ID, char* name, mat3s* ref);
void shaderSetMat4(GLuint ID, char* name, mat4s* ref);
