From 4da7be39827ea5888ef9c97b1aadf61b0d76347c Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Fri, 7 Feb 2025 11:27:18 -0500 Subject: initial commit (lol) --- mons_3d/include/shader.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mons_3d/include/shader.h (limited to 'mons_3d/include/shader.h') diff --git a/mons_3d/include/shader.h b/mons_3d/include/shader.h new file mode 100644 index 0000000..553c6e4 --- /dev/null +++ b/mons_3d/include/shader.h @@ -0,0 +1,35 @@ +#ifndef MONS_SHADER_H +#define MONS_SHADER_H + +#include +#include + +typedef unsigned int mons_shader; +typedef unsigned int mons_program; + +typedef enum mons_shader_type { + MONS_SHADER_TYPE_VERTEX = GL_VERTEX_SHADER, + MONS_SHADER_TYPE_FRAGMENT = GL_FRAGMENT_SHADER, +} mons_shader_type; + +struct mons_vec2; +struct mons_vec3; +struct mons_vec4; +struct mons_mat4; + +mons_shader mons_create_shader(mons_shader_type type, char *source, int len); +mons_program mons_create_program(mons_shader vertex_shader, mons_shader fragment_shader); +void mons_shader_set_float(mons_program shader, char *uniform_name, float value); +void mons_shader_set_vec2(mons_program shader, char *uniform_name, struct mons_vec2 value); +void mons_shader_set_vec3(mons_program shader, char *uniform_name, struct mons_vec3 value); +void mons_shader_set_vec4(mons_program shader, char *uniform_name, struct mons_vec4 value); +void mons_shader_set_mat4(mons_program shader, char *uniform_name, struct mons_mat4 value, bool transpose); + +void mons_shader_set_float_global(char *uniform_name, float value); +void mons_shader_set_vec2_global(char *uniform_name, struct mons_vec2 value); +void mons_shader_set_vec3_global(char *uniform_name, struct mons_vec3 value); +void mons_shader_set_vec4_global(char *uniform_name, struct mons_vec4 value); +void mons_shader_set_mat4_global(char *uniform_name, struct mons_mat4 value, bool transpose); +void mons_shader_apply_global_uniforms(mons_program shader); + +#endif -- cgit v1.2.3