#ifndef SHADER_H #define SHADER_H #include "my_math.h" typedef struct { u32 id; const char *name; } shader_t; #define MAX_SHADERS 8 extern shader_t shaders[MAX_SHADERS]; extern u32 load_shader(const char *dir, const char *vertex_filename, const char *fragment_filename, const char *geometry_filename, const char *name); extern u32 get_shader(const char *name); extern void uniform_f32(u32 id, const char *name, f32 v); extern void uniform_i32(u32 id, const char *name, i32 v); extern void uniform_v2(u32 id, const char *name, v2 v); extern void uniform_v3(u32 id, const char *name, v3 v); extern void uniform_v4(u32 id, const char *name, v4 v); extern void uniform_mat(u32 id, const char *name, mat m); #endif