-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshader.h
26 lines (23 loc) · 949 Bytes
/
shader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
enum ShaderUniform
{
SHADER_UNIFORM_MODEL,
SHADER_UNIFORM_VIEW,
SHADER_UNIFORM_PROJECTION,
SHADER_UNIFORM_ALPHA,
NUM_SHADER_UNIFORMS,
};
struct Shader
{
u32 program;
i32 uniform_locations[NUM_SHADER_UNIFORMS];
};
bool shader_compile(const GLchar *vertex_shader_source, const GLchar *fragment_shader_source, struct Shader *compiled_shader);
void shader_use(struct Shader *s);
void shader_setb(struct Shader *s, enum ShaderUniform u, bool value);
void shader_seti(struct Shader *s, enum ShaderUniform u, int value);
void shader_setf(struct Shader *s, enum ShaderUniform u, f32 value);
void shader_setm4(struct Shader *s, enum ShaderUniform u, m4 *mat);
void shader_setf3(struct Shader *s, enum ShaderUniform u, f32 x, f32 y, f32 z);
void shader_setf3_1(struct Shader *s, enum ShaderUniform u, f32 f);
void shader_setv3(struct Shader *s, enum ShaderUniform u, v3 *v);
char *shader_uniform_get_name(enum ShaderUniform u);