class Layer_Composite : public Layer
{
private:
-
- float amount_;
-
- Color::BlendMethod blend_method_;
+ //! The amount of composite
+ float amount;
+ //! The blend method for the composition
+ Color::BlendMethod blend_method;
protected:
+ //! Default constructor. Not used directly.
+ Layer_Composite(float amount=1.0, Color::BlendMethod blend_method=Color::BLEND_COMPOSITE);
- Layer_Composite(
- float amount=1.0,
- Color::BlendMethod blend_method=Color::BLEND_COMPOSITE
- ):
- amount_ (amount),
- blend_method_ (blend_method),
- converted_blend_ (false),
- transparent_color_ (false)
- { }
-
+ //! 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:
-
- float get_amount()const { return amount_; }
-
- Layer_Composite& set_amount(float x) { amount_=x; return *this; }
-
- Color::BlendMethod get_blend_method()const { return blend_method_; }
-
- Layer_Composite& set_blend_method(Color::BlendMethod x) { blend_method_=x; return *this; }
-
- virtual bool is_solid_color()const { return amount_==1.0f && blend_method_==Color::BLEND_STRAIGHT; }
-
- bool is_disabled()const { return amount_==0.0f; }
-
+ //! 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 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