first sorta working port
[fishladder.git] / shaders / post_darken.h
1 #ifndef SHADER_post_darken_H
2 #define SHADER_post_darken_H
3 static void shader_post_darken_link(void);
4 static void shader_post_darken_register(void);
5 static struct vg_shader _shader_post_darken = {
6 .name = "post_darken",
7 .link = shader_post_darken_link,
8 .vs =
9 {
10 .orig_file = "shaders/post_darken.vs.glsl",
11 .static_src =
12 "layout (location=0) in vec2 a_co;\n"
13 "out vec2 aTexCoords;\n"
14 "\n"
15 "void main(){\n"
16 " gl_Position = vec4( a_co * 2.0 - 1.0, 0.0, 1.0 );\n"
17 " aTexCoords = a_co;\n"
18 "}\n"
19 ""},
20 .fs =
21 {
22 .orig_file = "shaders/post_darken.fs.glsl",
23 .static_src =
24 "uniform sampler2D uTexMain;\n"
25 "out vec4 FragColor;\n"
26 "\n"
27 "in vec2 aTexCoords;\n"
28 "\n"
29 "void main(){\n"
30 " vec4 texture_sample = texture( uTexMain, aTexCoords );\n"
31 " FragColor = vec4(pow(texture_sample.rgb,vec3(2.2)), 1.0);\n"
32 "}\n"
33 ""},
34 };
35
36 static GLuint _uniform_post_darken_uTexMain;
37 static void shader_post_darken_uTexMain(int i){
38 glUniform1i(_uniform_post_darken_uTexMain,i);
39 }
40 static void shader_post_darken_register(void){
41 vg_shader_register( &_shader_post_darken );
42 }
43 static void shader_post_darken_use(void){ glUseProgram(_shader_post_darken.id); }
44 static void shader_post_darken_link(void){
45 _uniform_post_darken_uTexMain = glGetUniformLocation( _shader_post_darken.id, "uTexMain" );
46 }
47 #endif /* SHADER_post_darken_H */