X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Flayer_composite.h;h=7c9481168a47b926e12e9f6b35c35bcd0f928dcb;hb=cf2dbea77c392e29f5c359819977a8ba63667e42;hp=cb9497dd357d6f2415f509dddeb37c6f0a1d2de6;hpb=a095981e18cc37a8ecc7cd237cc22b9c10329264;p=synfig.git diff --git a/synfig-core/src/synfig/layer_composite.h b/synfig-core/src/synfig/layer_composite.h index cb9497d..7c94811 100644 --- a/synfig-core/src/synfig/layer_composite.h +++ b/synfig-core/src/synfig/layer_composite.h @@ -48,13 +48,15 @@ class Layer_NoDeform {}; class Layer_Composite : public Layer { private: - + //! The amount of composite float amount_; - + //! The blend method for the composition Color::BlendMethod blend_method_; + bool amount_static; + bool blend_method_static; protected: - + //! Default constructor. Not used directly. Layer_Composite( float amount=1.0, Color::BlendMethod blend_method=Color::BLEND_COMPOSITE @@ -62,34 +64,43 @@ protected: amount_ (amount), blend_method_ (blend_method), converted_blend_ (false), - transparent_color_ (false) + transparent_color_ (false), + amount_static (false), + blend_method_static (true) { } - + //! Converted blend is used to check if an old version of canvas + //! is used in the composition. Old Straight was used as new Composite + //! \todo verify this bool converted_blend_; + //! Transparent color is used for old canvas versions. + //!Old Straight plus transparent color seems to be the same new than alpha over. bool transparent_color_; public: - + //! Gets the amount of the layer float get_amount()const { return amount_; } - + //! Sets the amount of the layer and returns this layer Layer_Composite& set_amount(float x) { amount_=x; return *this; } - + //! Gets the blend method of the layer Color::BlendMethod get_blend_method()const { return blend_method_; } - + //! Sets the blend method of the layer and returns this layer Layer_Composite& set_blend_method(Color::BlendMethod x) { blend_method_=x; return *this; } - + //! Returns true is amount is 1 and blend method is straight virtual bool is_solid_color()const { return amount_==1.0f && blend_method_==Color::BLEND_STRAIGHT; } - + //! Returns true if the amount is zero. bool is_disabled()const { return amount_==0.0f; } - + //! Gets the parameter vocabulary. To be overrided by the derived. virtual Vocab get_param_vocab()const; - + //! Sets the value for the given parameter. virtual bool set_param(const String ¶m, const ValueBase &value); - + //! Gets the value of the given parameter virtual ValueBase get_param(const String ¶m)const; - + //!Returns the rectangle that includes the context of the layer and + //! the intersection of the layer in case it is active and not onto + virtual bool set_param_static(const String ¶m, const bool x); + virtual bool get_param_static(const String ¶m) const; virtual Rect get_full_bounding_rect(Context context)const; - + //! Renders the layer composited on the context and puts it on the target surface. virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; }; // END of class Layer_Composite