]> git.sesse.net Git - movit/blobdiff - resample_effect.h
Release Movit 1.6.0.
[movit] / resample_effect.h
index 027a497cc5fb5d6616ad43190117e4f91ed025d9..cf5f3bbd74e83aedccfa939dd5c82ad3d8919e13 100644 (file)
@@ -44,7 +44,7 @@ struct ScalingWeights {
        std::unique_ptr<Tap<fp16_int_t>[]> bilinear_weights_fp16;
        std::unique_ptr<Tap<float>[]> 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) {