aboutsummaryrefslogtreecommitdiffstats
path: root/glprog.c
diff options
context:
space:
mode:
Diffstat (limited to 'glprog.c')
-rw-r--r--glprog.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/glprog.c b/glprog.c
index 2996889..10f01a4 100644
--- a/glprog.c
+++ b/glprog.c
@@ -107,7 +107,7 @@ static void detach_shaders(GLuint prog)
static void load_shader(struct shader *s, const char *path)
{
GLuint prog;
- GLint success;
+ GLint success, pos = 0;
char log[LOGSIZE], *full, *src = NULL;
size_t srclen = 0, fullsz;
@@ -133,6 +133,8 @@ static void load_shader(struct shader *s, const char *path)
}
free(src);
free(full);
+#define SH_IN(_, name) gl_attr_bindloc(prog, pos++, #name);
+#include "shaders/data.h"
gl_prog_link(prog);
gl_prog_param(prog, GL_LINK_STATUS, &success);
if (!success) {
@@ -150,6 +152,8 @@ static void load_shader(struct shader *s, const char *path)
void glprog_init(void)
{
+ GLint pos = 0;
#define SH_PROG(name) load_shader(&prog.name, "shaders/" #name);
+#define SH_IN(_, name) prog.attr.name = pos++;
#include "shaders/data.h"
}