framebuffer formalitites
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / fscolour.h
1 #ifndef SHADER_fscolour_H
2 #define SHADER_fscolour_H
3 static void shader_fscolour_link(void);
4 static void shader_fscolour_register(void);
5 static struct vg_shader _shader_fscolour = {
6 .name = "fscolour",
7 .link = shader_fscolour_link,
8 .vs =
9 {
10 .static_src =
11 "layout (location=0) in vec2 a_co;\n"
12 "out vec2 aUv;\n"
13 "\n"
14 "void main()\n"
15 "{\n"
16 " gl_Position = vec4(a_co*2.0-1.0,0.0,1.0);\n"
17 " aUv = a_co;\n"
18 "}\n"
19 ""},
20 .fs =
21 {
22 .static_src =
23 "out vec4 FragColor;\n"
24 "uniform vec4 uColour;\n"
25 "\n"
26 "in vec2 aUv;\n"
27 "\n"
28 "void main()\n"
29 "{\n"
30 " FragColor = uColour;\n"
31 "}\n"
32 ""},
33 };
34
35 static GLuint _uniform_fscolour_uColour;
36 static void shader_fscolour_uColour(v4f v){
37 glUniform4fv(_uniform_fscolour_uColour,1,v);
38 }
39 static void shader_fscolour_register(void){
40 vg_shader_register( &_shader_fscolour );
41 }
42 static void shader_fscolour_use(void){ glUseProgram(_shader_fscolour.id); }
43 static void shader_fscolour_link(void){
44 _uniform_fscolour_uColour = glGetUniformLocation( _shader_fscolour.id, "uColour" );
45 }
46 #endif /* SHADER_fscolour_H */