]> git.sesse.net Git - movit/blobdiff - slice_effect.cpp
Forgot to increment version.h for bounce override; doing so now.
[movit] / slice_effect.cpp
index 50504fecbf0a4851af6c59d69fac02ad92349558..66fed5167f8578561bd1688b10b280105bde575f 100644 (file)
@@ -19,6 +19,10 @@ SliceEffect::SliceEffect()
        register_int("output_slice_size", &output_slice_size);
        register_int("offset", &offset);
        register_int("direction", (int *)&direction);
+       register_uniform_float("output_coord_to_slice_num", &uniform_output_coord_to_slice_num);
+       register_uniform_float("slice_num_to_input_coord", &uniform_slice_num_to_input_coord);
+       register_uniform_float("slice_offset_to_input_coord", &uniform_slice_offset_to_input_coord);
+       register_uniform_float("offset", &uniform_offset);
 }
 
 string SliceEffect::output_fragment_shader()
@@ -57,15 +61,15 @@ void SliceEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, un
        get_output_size(&output_width, &output_height, &output_width, &output_height);
 
        if (direction == HORIZONTAL) {
-               set_uniform_float(glsl_program_num, prefix, "output_coord_to_slice_num", float(output_width) / float(output_slice_size));
-               set_uniform_float(glsl_program_num, prefix, "slice_num_to_input_coord", float(input_slice_size) / float(input_width));
-               set_uniform_float(glsl_program_num, prefix, "slice_offset_to_input_coord", float(output_slice_size) / float(input_width));
-               set_uniform_float(glsl_program_num, prefix, "offset", float(offset) / float(input_width));
+               uniform_output_coord_to_slice_num = float(output_width) / float(output_slice_size);
+               uniform_slice_num_to_input_coord = float(input_slice_size) / float(input_width);
+               uniform_slice_offset_to_input_coord = float(output_slice_size) / float(input_width);
+               uniform_offset = float(offset) / float(input_width);
        } else {
-               set_uniform_float(glsl_program_num, prefix, "output_coord_to_slice_num", float(output_height) / float(output_slice_size));
-               set_uniform_float(glsl_program_num, prefix, "slice_num_to_input_coord", float(input_slice_size) / float(input_height));
-               set_uniform_float(glsl_program_num, prefix, "slice_offset_to_input_coord", float(output_slice_size) / float(input_height));
-               set_uniform_float(glsl_program_num, prefix, "offset", float(offset) / float(input_height));
+               uniform_output_coord_to_slice_num = float(output_height) / float(output_slice_size);
+               uniform_slice_num_to_input_coord = float(input_slice_size) / float(input_height);
+               uniform_slice_offset_to_input_coord = float(output_slice_size) / float(input_height);
+               uniform_offset = float(offset) / float(input_height);
        }
 
        // Normalized coordinates could potentially cause blurring of the image.