X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=slice_effect.cpp;h=50504fecbf0a4851af6c59d69fac02ad92349558;hp=3a884656108154278d3f2bfcddb87d9c2b182b73;hb=refs%2Ftags%2F1.1.1;hpb=5b6ab865efa692b25590f302c111b30680fbacdd diff --git a/slice_effect.cpp b/slice_effect.cpp index 3a88465..50504fe 100644 --- a/slice_effect.cpp +++ b/slice_effect.cpp @@ -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.