eeb351a7d9f5fc6e9b2c7465c1c3e3ee25727d14
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / routeui.h
1 #ifndef SHADER_routeui_H
2 #define SHADER_routeui_H
3 static void shader_routeui_link(void);
4 static void shader_routeui_register(void);
5 static struct vg_shader _shader_routeui = {
6 .name = "routeui",
7 .link = shader_routeui_link,
8 .vs =
9 {
10 .orig_file = "../../shaders/routeui.vs",
11 .static_src =
12 "layout (location=0) in vec2 a_co;\n"
13 "\n"
14 "uniform vec4 uOffset;\n"
15 "\n"
16 "void main()\n"
17 "{\n"
18 " float fbarx = (a_co.x+uOffset.x) * uOffset.z;\n"
19 " float fbary = a_co.y*uOffset.w + uOffset.y;\n"
20 "\n"
21 " vec2 vpos = vec2( fbarx, fbary );\n"
22 " gl_Position = vec4(vpos,0.0,1.0);\n"
23 "}\n"
24 ""},
25 .fs =
26 {
27 .orig_file = "../../shaders/routeui.fs",
28 .static_src =
29 "out vec4 FragColor;\n"
30 "\n"
31 "uniform vec4 uColour;\n"
32 "\n"
33 "void main()\n"
34 "{\n"
35 " FragColor = uColour;\n"
36 "}\n"
37 ""},
38 };
39
40 static GLuint _uniform_routeui_uOffset;
41 static GLuint _uniform_routeui_uColour;
42 static void shader_routeui_uOffset(v4f v){
43 glUniform4fv( _uniform_routeui_uOffset, 1, v );
44 }
45 static void shader_routeui_uColour(v4f v){
46 glUniform4fv( _uniform_routeui_uColour, 1, v );
47 }
48 static void shader_routeui_register(void){
49 vg_shader_register( &_shader_routeui );
50 }
51 static void shader_routeui_use(void){ glUseProgram(_shader_routeui.id); }
52 static void shader_routeui_link(void){
53 _uniform_routeui_uOffset = glGetUniformLocation( _shader_routeui.id, "uOffset" );
54 _uniform_routeui_uColour = glGetUniformLocation( _shader_routeui.id, "uColour" );
55 }
56 #endif /* SHADER_routeui_H */