Inkscape
Vector Graphics Editor
|
#include <nr-filter-primitive.h>
Public Member Functions | |
FilterPrimitive () | |
virtual | ~FilterPrimitive () |
virtual void | update () |
virtual void | render_cairo (FilterSlot &slot) const |
virtual void | area_enlarge (Geom::IntRect &area, Geom::Affine const &m) const |
virtual void | set_input (int slot) |
Sets the input slot number 'slot' to be used as input in rendering filter primitive 'primitive' For filter primitive types accepting more than one input, this sets the first input. | |
virtual void | set_input (int input, int slot) |
Sets the input slot number 'slot' to be user as input number 'input' in rendering filter primitive 'primitive' First input for a filter primitive is number 0. | |
virtual void | set_output (int slot) |
Sets the slot number 'slot' to be used as output from filter primitive 'primitive' If output slot for a filter element is not set, one of the unused image slots is used. | |
virtual double | complexity (Geom::Affine const &) const |
virtual bool | uses_background () const |
void | set_x (SVGLength const &length) |
Sets the filter primitive subregion. | |
void | set_y (SVGLength const &length) |
void | set_width (SVGLength const &length) |
void | set_height (SVGLength const &length) |
void | set_subregion (SVGLength const &x, SVGLength const &y, SVGLength const &width, SVGLength const &height) |
Geom::Rect | filter_primitive_area (FilterUnits const &units) const |
Returns the filter primitive area in user coordinate system. | |
virtual bool | can_handle_affine (Geom::Affine const &) const |
Indicate whether the filter primitive can handle the given affine. | |
void | setStyle (SPStyle const *style) |
Sets style for access to properties used by filter primitives. | |
virtual Glib::ustring | name () const |
Protected Attributes | |
int | _input |
int | _output |
SVGLength | _subregion_x |
SVGLength | _subregion_y |
SVGLength | _subregion_width |
SVGLength | _subregion_height |
SPColorInterpolation | color_interpolation |
Definition at line 33 of file nr-filter-primitive.h.
Inkscape::Filters::FilterPrimitive::FilterPrimitive | ( | ) |
Definition at line 26 of file nr-filter-primitive.cpp.
References _input, _output, _subregion_height, _subregion_width, _subregion_x, _subregion_y, color_interpolation, Inkscape::Filters::NR_FILTER_SLOT_NOT_SET, SVGLength::PERCENT, SP_CSS_COLOR_INTERPOLATION_AUTO, and SVGLength::unset().
|
virtualdefault |
|
inlinevirtual |
Reimplemented in Inkscape::Filters::FilterGaussian, Inkscape::Filters::FilterConvolveMatrix, Inkscape::Filters::FilterDiffuseLighting, Inkscape::Filters::FilterDisplacementMap, Inkscape::Filters::FilterMorphology, Inkscape::Filters::FilterOffset, Inkscape::Filters::FilterSpecularLighting, and Inkscape::Filters::FilterTile.
Definition at line 41 of file nr-filter-primitive.h.
|
inlinevirtual |
Indicate whether the filter primitive can handle the given affine.
Results of some filter primitives depend on the coordinate system used when rendering. A gaussian blur with equal x and y deviation will remain unchanged by rotations. Per-pixel filters like color matrix and blend will not change regardless of the transformation.
When any filter returns false, filter rendering is performed on an intermediate surface with edges parallel to the axes of the user coordinate system. This means the matrices from FilterUnits will contain at most a (possibly non-uniform) scale and a translation. When all primitives of the filter return true, the rendering is performed in display coordinate space and no intermediate surface is used.
Reimplemented in Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterColorMatrix, Inkscape::Filters::FilterComponentTransfer, Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterFlood, Inkscape::Filters::FilterImage, Inkscape::Filters::FilterMerge, Inkscape::Filters::FilterOffset, and Inkscape::Filters::FilterGaussian.
Definition at line 115 of file nr-filter-primitive.h.
|
inlinevirtual |
Reimplemented in Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterColorMatrix, Inkscape::Filters::FilterComponentTransfer, Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterConvolveMatrix, Inkscape::Filters::FilterDiffuseLighting, Inkscape::Filters::FilterDisplacementMap, Inkscape::Filters::FilterFlood, Inkscape::Filters::FilterGaussian, Inkscape::Filters::FilterImage, Inkscape::Filters::FilterMerge, Inkscape::Filters::FilterMorphology, Inkscape::Filters::FilterOffset, Inkscape::Filters::FilterSpecularLighting, Inkscape::Filters::FilterTile, and Inkscape::Filters::FilterTurbulence.
Definition at line 77 of file nr-filter-primitive.h.
Geom::Rect Inkscape::Filters::FilterPrimitive::filter_primitive_area | ( | FilterUnits const & | units | ) | const |
Returns the filter primitive area in user coordinate system.
Definition at line 103 of file nr-filter-primitive.cpp.
References SVGLength::_set, _subregion_height, _subregion_width, _subregion_x, _subregion_y, SVGLength::computed, Geom::GenericRect< Coord >::from_xywh(), Inkscape::Filters::FilterUnits::get_filter_area(), Inkscape::Filters::FilterUnits::get_item_bbox(), Inkscape::Filters::FilterUnits::get_primitive_units(), Geom::GenericRect< C >::height(), height, Geom::GenericRect< C >::left(), SVGLength::PERCENT, scale, SP_FILTER_UNITS_OBJECTBOUNDINGBOX, Geom::GenericRect< C >::top(), SVGLength::unit, SVGLength::value, Geom::GenericRect< C >::width(), and width.
Referenced by Inkscape::Filters::FilterComposite::render_cairo(), Inkscape::Filters::FilterMerge::render_cairo(), Inkscape::Filters::FilterFlood::render_cairo(), Inkscape::Filters::FilterImage::render_cairo(), Inkscape::Filters::FilterOffset::render_cairo(), and Inkscape::Filters::FilterTile::render_cairo().
|
inlinevirtual |
Reimplemented in Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterColorMatrix, Inkscape::Filters::FilterComponentTransfer, Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterConvolveMatrix, Inkscape::Filters::FilterDiffuseLighting, Inkscape::Filters::FilterDisplacementMap, Inkscape::Filters::FilterFlood, Inkscape::Filters::FilterGaussian, Inkscape::Filters::FilterImage, Inkscape::Filters::FilterMerge, Inkscape::Filters::FilterMorphology, Inkscape::Filters::FilterOffset, Inkscape::Filters::FilterSpecularLighting, Inkscape::Filters::FilterTile, and Inkscape::Filters::FilterTurbulence.
Definition at line 123 of file nr-filter-primitive.h.
|
virtual |
Reimplemented in Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterMerge, Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterColorMatrix, Inkscape::Filters::FilterComponentTransfer, Inkscape::Filters::FilterConvolveMatrix, Inkscape::Filters::FilterDiffuseLighting, Inkscape::Filters::FilterDisplacementMap, Inkscape::Filters::FilterFlood, Inkscape::Filters::FilterGaussian, Inkscape::Filters::FilterImage, Inkscape::Filters::FilterMorphology, Inkscape::Filters::FilterOffset, Inkscape::Filters::FilterSkeleton, Inkscape::Filters::FilterSpecularLighting, Inkscape::Filters::FilterTile, and Inkscape::Filters::FilterTurbulence.
Definition at line 50 of file nr-filter-primitive.cpp.
References _input, _output, Inkscape::Filters::FilterSlot::getcairo(), and Inkscape::Filters::FilterSlot::set().
void Inkscape::Filters::FilterPrimitive::set_height | ( | SVGLength const & | length | ) |
Definition at line 89 of file nr-filter-primitive.cpp.
References _subregion_height.
|
virtual |
Sets the input slot number 'slot' to be user as input number 'input' in rendering filter primitive 'primitive' First input for a filter primitive is number 0.
For primitives with attributes 'in' and 'in2', these are numbered 0 and 1, respectively. If any of required input slots for a filter is not set, the output of previous filter primitive is used, or SourceGraphic if this is the first filter primitive for this filter.
Reimplemented in Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterDisplacementMap, and Inkscape::Filters::FilterMerge.
Definition at line 62 of file nr-filter-primitive.cpp.
References _input.
|
virtual |
Sets the input slot number 'slot' to be used as input in rendering filter primitive 'primitive' For filter primitive types accepting more than one input, this sets the first input.
If any of the required input slots is not set, the output of previous filter primitive is used, or SourceGraphic if this is the first primitive for this filter.
Reimplemented in Inkscape::Filters::FilterComposite, Inkscape::Filters::FilterMerge, Inkscape::Filters::FilterBlend, and Inkscape::Filters::FilterDisplacementMap.
Definition at line 57 of file nr-filter-primitive.cpp.
References set_input().
Referenced by SPFilterPrimitive::build_renderer_common(), and set_input().
|
virtual |
Sets the slot number 'slot' to be used as output from filter primitive 'primitive' If output slot for a filter element is not set, one of the unused image slots is used.
It is an error to specify a pre-defined slot as 'slot'. Such call does not have any effect to the state of filter or its primitives.
Definition at line 67 of file nr-filter-primitive.cpp.
References _output.
Referenced by SPFilterPrimitive::build_renderer_common().
void Inkscape::Filters::FilterPrimitive::set_subregion | ( | SVGLength const & | x, |
SVGLength const & | y, | ||
SVGLength const & | width, | ||
SVGLength const & | height | ||
) |
Definition at line 94 of file nr-filter-primitive.cpp.
References _subregion_height, _subregion_width, _subregion_x, _subregion_y, height, and width.
Referenced by SPFilterPrimitive::build_renderer_common().
void Inkscape::Filters::FilterPrimitive::set_width | ( | SVGLength const & | length | ) |
Definition at line 84 of file nr-filter-primitive.cpp.
References _subregion_width.
void Inkscape::Filters::FilterPrimitive::set_x | ( | SVGLength const & | length | ) |
Sets the filter primitive subregion.
Passing an unset length (length._set == false) WILL change the parameter as it is important to know if a parameter is unset.
Definition at line 74 of file nr-filter-primitive.cpp.
References _subregion_x.
void Inkscape::Filters::FilterPrimitive::set_y | ( | SVGLength const & | length | ) |
Definition at line 79 of file nr-filter-primitive.cpp.
References _subregion_y.
void Inkscape::Filters::FilterPrimitive::setStyle | ( | SPStyle const * | style | ) |
Sets style for access to properties used by filter primitives.
Definition at line 172 of file nr-filter-primitive.cpp.
References color_interpolation, SPStyle::color_interpolation_filters, and SP_CSS_COLOR_INTERPOLATION_AUTO.
Referenced by SPFilterPrimitive::build_renderer_common().
|
inlinevirtual |
Reimplemented in Inkscape::Filters::FilterImage.
Definition at line 39 of file nr-filter-primitive.h.
|
inlinevirtual |
Reimplemented in Inkscape::Filters::FilterBlend, Inkscape::Filters::FilterFlood, Inkscape::Filters::FilterMerge, and Inkscape::Filters::FilterTurbulence.
Definition at line 79 of file nr-filter-primitive.h.
References _input, Inkscape::Filters::NR_FILTER_BACKGROUNDALPHA, and Inkscape::Filters::NR_FILTER_BACKGROUNDIMAGE.
|
protected |
Definition at line 126 of file nr-filter-primitive.h.
Referenced by FilterPrimitive(), Inkscape::Filters::FilterComposite::render_cairo(), render_cairo(), Inkscape::Filters::FilterBlend::render_cairo(), Inkscape::Filters::FilterColorMatrix::render_cairo(), Inkscape::Filters::FilterComponentTransfer::render_cairo(), Inkscape::Filters::FilterConvolveMatrix::render_cairo(), Inkscape::Filters::FilterDiffuseLighting::render_cairo(), Inkscape::Filters::FilterDisplacementMap::render_cairo(), Inkscape::Filters::FilterFlood::render_cairo(), Inkscape::Filters::FilterGaussian::render_cairo(), Inkscape::Filters::FilterMorphology::render_cairo(), Inkscape::Filters::FilterOffset::render_cairo(), Inkscape::Filters::FilterSkeleton::render_cairo(), Inkscape::Filters::FilterSpecularLighting::render_cairo(), Inkscape::Filters::FilterTile::render_cairo(), Inkscape::Filters::FilterTurbulence::render_cairo(), Inkscape::Filters::FilterComposite::set_input(), set_input(), Inkscape::Filters::FilterBlend::set_input(), Inkscape::Filters::FilterComposite::set_input(), Inkscape::Filters::FilterDisplacementMap::set_input(), Inkscape::Filters::FilterBlend::set_input(), Inkscape::Filters::FilterDisplacementMap::set_input(), uses_background(), and Inkscape::Filters::FilterBlend::uses_background().
|
protected |
Definition at line 127 of file nr-filter-primitive.h.
Referenced by FilterPrimitive(), Inkscape::Filters::FilterComposite::render_cairo(), Inkscape::Filters::FilterMerge::render_cairo(), render_cairo(), Inkscape::Filters::FilterBlend::render_cairo(), Inkscape::Filters::FilterColorMatrix::render_cairo(), Inkscape::Filters::FilterComponentTransfer::render_cairo(), Inkscape::Filters::FilterConvolveMatrix::render_cairo(), Inkscape::Filters::FilterDiffuseLighting::render_cairo(), Inkscape::Filters::FilterDisplacementMap::render_cairo(), Inkscape::Filters::FilterFlood::render_cairo(), Inkscape::Filters::FilterGaussian::render_cairo(), Inkscape::Filters::FilterImage::render_cairo(), Inkscape::Filters::FilterMorphology::render_cairo(), Inkscape::Filters::FilterOffset::render_cairo(), Inkscape::Filters::FilterSkeleton::render_cairo(), Inkscape::Filters::FilterSpecularLighting::render_cairo(), Inkscape::Filters::FilterTile::render_cairo(), Inkscape::Filters::FilterTurbulence::render_cairo(), and set_output().
|
protected |
Definition at line 133 of file nr-filter-primitive.h.
Referenced by filter_primitive_area(), FilterPrimitive(), set_height(), and set_subregion().
|
protected |
Definition at line 132 of file nr-filter-primitive.h.
Referenced by filter_primitive_area(), FilterPrimitive(), set_subregion(), and set_width().
|
protected |
Definition at line 130 of file nr-filter-primitive.h.
Referenced by filter_primitive_area(), FilterPrimitive(), set_subregion(), and set_x().
|
protected |
Definition at line 131 of file nr-filter-primitive.h.
Referenced by filter_primitive_area(), FilterPrimitive(), set_subregion(), and set_y().
|
protected |
Definition at line 135 of file nr-filter-primitive.h.
Referenced by FilterPrimitive(), Inkscape::Filters::FilterComposite::render_cairo(), Inkscape::Filters::FilterMerge::render_cairo(), Inkscape::Filters::FilterBlend::render_cairo(), Inkscape::Filters::FilterColorMatrix::render_cairo(), Inkscape::Filters::FilterComponentTransfer::render_cairo(), Inkscape::Filters::FilterConvolveMatrix::render_cairo(), Inkscape::Filters::FilterDiffuseLighting::render_cairo(), Inkscape::Filters::FilterDisplacementMap::render_cairo(), Inkscape::Filters::FilterFlood::render_cairo(), Inkscape::Filters::FilterGaussian::render_cairo(), Inkscape::Filters::FilterSpecularLighting::render_cairo(), Inkscape::Filters::FilterTurbulence::render_cairo(), and setStyle().