#ifndef SHADER_H #define SHADER_H #include typedef struct { GLuint program; } Shader; Shader *shader_create(const char *vertex_path, const char *fragment_path); void shader_use(Shader *shader); void shader_delete(Shader *shader); void shader_set_int(Shader *shader, const char *name, int value); void shader_set_float(Shader *shader, const char *name, float value); void shader_set_vec3(Shader *shader, const char *name, float x, float y, float z); void shader_set_mat4(Shader *shader, const char *name, const float *value); #endif