blob: e6f794ef956b67ae2c3d28b6b4812bf278365d55 (
plain)
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
|
#pragma once
#include <GL/gl.h>
#include <cglm/cglm.h>
#include "mesh.h"
typedef struct {
GLuint program_id;
GLuint vertex_id;
GLuint fragment_id;
int attributes;
} Shader;
Shader *shader_init(const char *vertexFile, const char *fragmentFile);
void shader_bind(Shader *shader);
void shader_unbind(void);
void shader_free(Shader *shader);
GLint shader_uniform_location(Shader *shader, const char *name);
void shader_load_float(GLint location, float value);
void shader_load_int(GLint location, int value);
void shader_load_vec3(GLint location, vec3 value);
void shader_load_mat4(GLint location, mat4 value);
void shader_load_ubo(GLint location, GLuint index, Uniform *uniform);
|