]> git.sesse.net Git - movit/blobdiff - vignette_effect.cpp
Move to 'using namespace std;' in all .cpp files.
[movit] / vignette_effect.cpp
index ac5197781cc4fc17f95ad2f5211df6021c0bc700..6a9a340a111cb7977ba0bc584bf380cf704eb160 100644 (file)
@@ -5,8 +5,11 @@
 #include "vignette_effect.h"
 #include "util.h"
 
 #include "vignette_effect.h"
 #include "util.h"
 
+using namespace std;
+
 VignetteEffect::VignetteEffect()
        : center(0.5f, 0.5f),
 VignetteEffect::VignetteEffect()
        : center(0.5f, 0.5f),
+         aspect_correction(1.0f, 1.0f),
          radius(0.3f),
          inner_radius(0.3f)
 {
          radius(0.3f),
          inner_radius(0.3f)
 {
@@ -15,17 +18,27 @@ VignetteEffect::VignetteEffect()
        register_float("inner_radius", (float *)&inner_radius);
 }
 
        register_float("inner_radius", (float *)&inner_radius);
 }
 
-std::string VignetteEffect::output_fragment_shader()
+string VignetteEffect::output_fragment_shader()
 {
        return read_file("vignette_effect.frag");
 }
 
 {
        return read_file("vignette_effect.frag");
 }
 
-void VignetteEffect::set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num)
+void VignetteEffect::inform_input_size(unsigned input_num, unsigned width, unsigned height) {
+       assert(input_num == 0);
+       if (width >= height) {
+               aspect_correction = Point2D(float(width) / float(height), 1.0f);
+       } else {
+               aspect_correction = Point2D(1.0f, float(height) / float(width));
+       }
+}
+
+void VignetteEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, unsigned *sampler_num)
 {
        Effect::set_gl_state(glsl_program_num, prefix, sampler_num);
 
        set_uniform_float(glsl_program_num, prefix, "pihalf_div_radius", 0.5 * M_PI / radius);
 {
        Effect::set_gl_state(glsl_program_num, prefix, sampler_num);
 
        set_uniform_float(glsl_program_num, prefix, "pihalf_div_radius", 0.5 * M_PI / radius);
+       set_uniform_vec2(glsl_program_num, prefix, "aspect_correction", (float *)&aspect_correction);
 
 
-       Point2D aspect(16.0f / 9.0f, 1.0f);  // FIXME
-       set_uniform_vec2(glsl_program_num, prefix, "aspect_correction", (float *)&aspect);
+       Point2D flipped_center(center.x, 1.0f - center.y);
+       set_uniform_vec2(glsl_program_num, prefix, "flipped_center", (float *)&flipped_center);
 }
 }