1 #ifndef SHADER_post_blur_H
2 #define SHADER_post_blur_H
3 static void shader_post_blur_link(void);
4 static void shader_post_blur_register(void);
5 static struct vg_shader _shader_post_blur
= {
7 .link
= shader_post_blur_link
,
10 .orig_file
= "shaders/post_blur.vs.glsl",
12 "layout (location=0) in vec2 a_co;\n"
13 "out vec2 aTexCoords;\n"
16 " gl_Position = vec4( a_co * 2.0 - 1.0, 0.0, 1.0 );\n"
17 " aTexCoords = a_co;\n"
22 .orig_file
= "shaders/post_blur.fs.glsl",
24 "uniform sampler2D uTexMain;\n"
25 "uniform vec2 uDir;\n"
26 "out vec4 FragColor;\n"
28 "in vec2 aTexCoords;\n"
31 " vec4 colour = vec4(0.0);\n"
33 " vec2 off1 = vec2(1.411764705882353) * uDir;\n"
34 " vec2 off2 = vec2(3.2941176470588234) * uDir;\n"
35 " vec2 off3 = vec2(5.176470588235294) * uDir;\n"
36 " colour += texture2D( uTexMain, aTexCoords ) * 0.1964825501511404;\n"
37 " colour += texture2D( uTexMain, aTexCoords + off1 ) * 0.2969069646728344;\n"
38 " colour += texture2D( uTexMain, aTexCoords - off1 ) * 0.2969069646728344;\n"
39 " colour += texture2D( uTexMain, aTexCoords + off2 ) * 0.09447039785044732;\n"
40 " colour += texture2D( uTexMain, aTexCoords - off2 ) * 0.09447039785044732;\n"
41 " colour += texture2D( uTexMain, aTexCoords + off3 ) * 0.010381362401148057;\n"
42 " colour += texture2D( uTexMain, aTexCoords - off3 ) * 0.010381362401148057;\n"
43 " FragColor = colour;\n"
48 static GLuint _uniform_post_blur_uTexMain
;
49 static GLuint _uniform_post_blur_uDir
;
50 static void shader_post_blur_uTexMain(int i
){
51 glUniform1i(_uniform_post_blur_uTexMain
,i
);
53 static void shader_post_blur_uDir(v2f
const v
){
54 glUniform2fv(_uniform_post_blur_uDir
,1,v
);
56 static void shader_post_blur_register(void){
57 vg_shader_register( &_shader_post_blur
);
59 static void shader_post_blur_use(void){ glUseProgram(_shader_post_blur
.id
); }
60 static void shader_post_blur_link(void){
61 _uniform_post_blur_uTexMain
= glGetUniformLocation( _shader_post_blur
.id
, "uTexMain" );
62 _uniform_post_blur_uDir
= glGetUniformLocation( _shader_post_blur
.id
, "uDir" );
64 #endif /* SHADER_post_blur_H */