]> git.sesse.net Git - movit/blobdiff - slice_effect.cpp
Revert the optimization of the bilinear weights.
[movit] / slice_effect.cpp
index 3a884656108154278d3f2bfcddb87d9c2b182b73..50504fecbf0a4851af6c59d69fac02ad92349558 100644 (file)
@@ -10,9 +10,14 @@ using namespace std;
 namespace movit {
 
 SliceEffect::SliceEffect()
+       : input_slice_size(1),
+         output_slice_size(1),
+         offset(0),
+         direction(VERTICAL)
 {
        register_int("input_slice_size", &input_slice_size);
        register_int("output_slice_size", &output_slice_size);
+       register_int("offset", &offset);
        register_int("direction", (int *)&direction);
 }
 
@@ -55,10 +60,12 @@ void SliceEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, un
                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));
        } 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));
        }
 
        // Normalized coordinates could potentially cause blurring of the image.