X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=padding_effect.cpp;h=d8ed95212c66d7d797e1bce748362fe54f0f03c8;hp=a70025d015475f885a9841d96e40c08fe3ac762e;hb=fe58d6d7a4f9284aa47270c2b21a59887124ae14;hpb=e92a5ffa19eb67b4db5af1db8559630139073668 diff --git a/padding_effect.cpp b/padding_effect.cpp index a70025d..d8ed952 100644 --- a/padding_effect.cpp +++ b/padding_effect.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include "effect_util.h" @@ -14,15 +14,13 @@ PaddingEffect::PaddingEffect() output_width(1280), output_height(720), top(0), - left(0), - pad_from_bottom(0) + left(0) { register_vec4("border_color", (float *)&border_color); register_int("width", &output_width); register_int("height", &output_height); register_float("top", &top); register_float("left", &left); - register_int("pad_from_bottom", &pad_from_bottom); } string PaddingEffect::output_fragment_shader() @@ -34,13 +32,10 @@ void PaddingEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, { Effect::set_gl_state(glsl_program_num, prefix, sampler_num); - float offset[2]; - offset[0] = left / output_width; - if (pad_from_bottom) { - offset[1] = top / output_height; - } else { - offset[1] = (output_height - input_height - top) / output_height; - } + float offset[2] = { + left / output_width, + (output_height - input_height - top) / output_height + }; set_uniform_vec2(glsl_program_num, prefix, "offset", offset); float scale[2] = { @@ -138,4 +133,25 @@ void PaddingEffect::inform_input_size(unsigned input_num, unsigned width, unsign input_height = height; } +IntegralPaddingEffect::IntegralPaddingEffect() {} + +bool IntegralPaddingEffect::set_int(const std::string &key, int value) +{ + if (key == "top" || key == "left") { + return PaddingEffect::set_float(key, value); + } else { + return PaddingEffect::set_int(key, value); + } +} + +bool IntegralPaddingEffect::set_float(const std::string &key, float value) +{ + if (key == "top" || key == "left") { + // These are removed as float parameters from this version. + return false; + } else { + return PaddingEffect::set_float(key, value); + } +} + } // namespace movit