X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=resample_effect.h;h=cf5f3bbd74e83aedccfa939dd5c82ad3d8919e13;hp=027a497cc5fb5d6616ad43190117e4f91ed025d9;hb=b90558ce2296b46758be80d447f36bb0ed1be70a;hpb=3306a4a0d2300767eeef71ab877fdf1587d13475 diff --git a/resample_effect.h b/resample_effect.h index 027a497..cf5f3bb 100644 --- a/resample_effect.h +++ b/resample_effect.h @@ -44,7 +44,7 @@ struct ScalingWeights { std::unique_ptr[]> bilinear_weights_fp16; std::unique_ptr[]> bilinear_weights_fp32; }; -ScalingWeights calculate_scaling_weights(unsigned src_size, unsigned dst_size, float zoom, float offset); +ScalingWeights calculate_bilinear_scaling_weights(unsigned src_size, unsigned dst_size, float zoom, float offset); // A simple manager for support data stored in a 2D texture. // Consider moving it to a shared location of more classes @@ -70,11 +70,6 @@ public: std::string effect_type_id() const override { return "ResampleEffect"; } - // We want this for the same reason as ResizeEffect; we could end up scaling - // down quite a lot. - bool needs_texture_bounce() const override { return true; } - bool needs_srgb_primaries() const override { return false; } - void inform_input_size(unsigned input_num, unsigned width, unsigned height) override; std::string output_fragment_shader() override { @@ -117,6 +112,10 @@ public: bool needs_srgb_primaries() const override { return false; } AlphaHandling alpha_handling() const override { return INPUT_PREMULTIPLIED_ALPHA_KEEP_BLANK; } + // We specifically do not want mipmaps on the input texture; + // they break minification. + MipmapRequirements needs_mipmaps() const override { return CANNOT_ACCEPT_MIPMAPS; } + void inform_added(EffectChain *chain) override { this->chain = chain; } void inform_input_size(unsigned input_num, unsigned width, unsigned height) override { if (parent != nullptr) {