X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=slice_effect.cpp;h=66fed5167f8578561bd1688b10b280105bde575f;hp=50504fecbf0a4851af6c59d69fac02ad92349558;hb=974b5c837c24179f9ab29f4ffdcdd1172288172b;hpb=9e219b96e914b2e5709ba3c3345afdc3cf13a78d diff --git a/slice_effect.cpp b/slice_effect.cpp index 50504fe..66fed51 100644 --- a/slice_effect.cpp +++ b/slice_effect.cpp @@ -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.