1 #define GL_GLEXT_PROTOTYPES 1
7 #include "blur_effect.h"
10 BlurEffect::BlurEffect()
13 register_float("radius", (float *)&radius);
16 std::string BlurEffect::output_fragment_shader()
18 return read_file("blur_effect.frag");
21 void BlurEffect::set_uniforms(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num)
23 Effect::set_uniforms(glsl_program_num, prefix, sampler_num);
25 //glActiveTexture(GL_TEXTURE0);
26 //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 3);
29 set_uniform_float(glsl_program_num, prefix, "pixel_offset", 1.0f / 1280.0f); // FIXME
31 // Simple Gaussian weights for now.
32 float weight[15], total = 0.0f;
33 for (unsigned i = 0; i < 15; ++i) {
34 float z = (i - 7.0f) / radius;
35 weight[i] = exp(-(z*z));
38 for (unsigned i = 0; i < 15; ++i) {
40 printf("%f\n", weight[i]);
43 set_uniform_float_array(glsl_program_num, prefix, "weight", weight, 15);