Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
Inkscape::Filters::FilterSlot Class Referencefinal

#include <nr-filter-slot.h>

Public Member Functions

 FilterSlot (DrawingContext *bgdc, DrawingContext &graphic, FilterUnits const &units, RenderContext &rc, int blurquality)
 Creates a new FilterSlot object.
 
 ~FilterSlot ()
 Destroys the FilterSlot object and all its contents.
 
cairo_surface_tgetcairo (int slot)
 Returns the pixblock in specified slot.
 
void set (int slot, cairo_surface_t *s)
 Sets or re-sets the pixblock associated with given slot.
 
cairo_surface_tget_result (int slot_nr)
 
void set_primitive_area (int slot, Geom::Rect &area)
 
Geom::Rect get_primitive_area (int slot) const
 
int get_slot_count () const
 Returns the number of slots in use.
 
int get_blurquality () const
 Gets the gaussian filtering quality.
 
int get_device_scale () const
 Gets the device scale; for high DPI monitors.
 
FilterUnits const & get_units () const
 
Geom::Rect get_slot_area () const
 
RenderContextget_rendercontext () const
 

Private Types

using SlotMap = std::map< int, cairo_surface_t * >
 
using PrimitiveAreaMap = std::map< int, Geom::Rect >
 

Private Member Functions

cairo_surface_t_get_transformed_source_graphic () const
 
cairo_surface_t_get_transformed_background () const
 
cairo_surface_t_get_fill_paint () const
 
cairo_surface_t_get_stroke_paint () const
 
void _set_internal (int slot, cairo_surface_t *s)
 

Private Attributes

SlotMap _slots
 
PrimitiveAreaMap _primitiveAreas
 
int _slot_w
 
int _slot_h
 
double _slot_x
 
double _slot_y
 
cairo_surface_t_source_graphic
 
cairo_t_background_ct
 
Geom::IntRect _source_graphic_area
 
Geom::IntRect _background_area
 needed to extract background
 
FilterUnits const & _units
 
int _last_out
 
int _blurquality
 
int device_scale
 
RenderContextrc
 

Detailed Description

Definition at line 34 of file nr-filter-slot.h.

Member Typedef Documentation

◆ PrimitiveAreaMap

Definition at line 82 of file nr-filter-slot.h.

◆ SlotMap

using Inkscape::Filters::FilterSlot::SlotMap = std::map<int, cairo_surface_t *>
private

Definition at line 78 of file nr-filter-slot.h.

Constructor & Destructor Documentation

◆ FilterSlot()

◆ ~FilterSlot()

Inkscape::Filters::FilterSlot::~FilterSlot ( )

Destroys the FilterSlot object and all its contents.

Definition at line 60 of file nr-filter-slot.cpp.

References _slots.

Member Function Documentation

◆ _get_fill_paint()

cairo_surface_t * Inkscape::Filters::FilterSlot::_get_fill_paint ( ) const
private

◆ _get_stroke_paint()

cairo_surface_t * Inkscape::Filters::FilterSlot::_get_stroke_paint ( ) const
private

◆ _get_transformed_background()

◆ _get_transformed_source_graphic()

◆ _set_internal()

void Inkscape::Filters::FilterSlot::_set_internal ( int  slot,
cairo_surface_t s 
)
private

Definition at line 217 of file nr-filter-slot.cpp.

References _slots, and surface.

Referenced by getcairo(), and set().

◆ get_blurquality()

int Inkscape::Filters::FilterSlot::get_blurquality ( ) const
inline

Gets the gaussian filtering quality.

Affects used interpolation methods

Definition at line 67 of file nr-filter-slot.h.

References _blurquality.

Referenced by Inkscape::Filters::FilterGaussian::render_cairo().

◆ get_device_scale()

◆ get_primitive_area()

Geom::Rect Inkscape::Filters::FilterSlot::get_primitive_area ( int  slot) const

◆ get_rendercontext()

RenderContext & Inkscape::Filters::FilterSlot::get_rendercontext ( ) const
inline

Definition at line 75 of file nr-filter-slot.h.

References rc.

Referenced by Inkscape::Filters::FilterImage::render_cairo().

◆ get_result()

◆ get_slot_area()

◆ get_slot_count()

int Inkscape::Filters::FilterSlot::get_slot_count ( ) const
inline

Returns the number of slots in use.

Definition at line 64 of file nr-filter-slot.h.

References _slots.

◆ get_units()

◆ getcairo()

cairo_surface_t * Inkscape::Filters::FilterSlot::getcairo ( int  slot)

Returns the pixblock in specified slot.

Parameter 'slot' may be either an positive integer or one of pre-defined filter slot types: NR_FILTER_SLOT_NOT_SET, NR_FILTER_SOURCEGRAPHIC, NR_FILTER_SOURCEALPHA, NR_FILTER_BACKGROUNDIMAGE, NR_FILTER_BACKGROUNDALPHA, NR_FILTER_FILLPAINT, NR_FILTER_SOURCEPAINT.

Definition at line 67 of file nr-filter-slot.cpp.

References _get_transformed_background(), _get_transformed_source_graphic(), _last_out, _set_internal(), _slot_h, _slot_w, _slots, _source_graphic, getcairo(), ink_cairo_extract_alpha(), Inkscape::Filters::NR_FILTER_BACKGROUNDALPHA, Inkscape::Filters::NR_FILTER_BACKGROUNDIMAGE, Inkscape::Filters::NR_FILTER_FILLPAINT, Inkscape::Filters::NR_FILTER_SLOT_NOT_SET, Inkscape::Filters::NR_FILTER_SOURCEALPHA, Inkscape::Filters::NR_FILTER_SOURCEGRAPHIC, Inkscape::Filters::NR_FILTER_STROKEPAINT, set_cairo_surface_ci(), and SP_CSS_COLOR_INTERPOLATION_SRGB.

Referenced by get_result(), getcairo(), Inkscape::Filters::FilterComposite::render_cairo(), Inkscape::Filters::FilterMerge::render_cairo(), Inkscape::Filters::FilterPrimitive::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(), and Inkscape::Filters::FilterTurbulence::render_cairo().

◆ set()

◆ set_primitive_area()

Member Data Documentation

◆ _background_area

Geom::IntRect Inkscape::Filters::FilterSlot::_background_area
private

needed to extract background

Definition at line 90 of file nr-filter-slot.h.

Referenced by _get_transformed_background().

◆ _background_ct

cairo_t* Inkscape::Filters::FilterSlot::_background_ct
private

Definition at line 88 of file nr-filter-slot.h.

Referenced by _get_transformed_background().

◆ _blurquality

int Inkscape::Filters::FilterSlot::_blurquality
private

Definition at line 93 of file nr-filter-slot.h.

Referenced by get_blurquality().

◆ _last_out

int Inkscape::Filters::FilterSlot::_last_out
private

Definition at line 92 of file nr-filter-slot.h.

Referenced by get_primitive_area(), getcairo(), and set().

◆ _primitiveAreas

PrimitiveAreaMap Inkscape::Filters::FilterSlot::_primitiveAreas
private

Definition at line 83 of file nr-filter-slot.h.

Referenced by get_primitive_area(), and set_primitive_area().

◆ _slot_h

int Inkscape::Filters::FilterSlot::_slot_h
private

◆ _slot_w

int Inkscape::Filters::FilterSlot::_slot_w
private

◆ _slot_x

double Inkscape::Filters::FilterSlot::_slot_x
private

◆ _slot_y

double Inkscape::Filters::FilterSlot::_slot_y
private

◆ _slots

SlotMap Inkscape::Filters::FilterSlot::_slots
private

Definition at line 79 of file nr-filter-slot.h.

Referenced by _set_internal(), get_slot_count(), getcairo(), and ~FilterSlot().

◆ _source_graphic

cairo_surface_t* Inkscape::Filters::FilterSlot::_source_graphic
private

Definition at line 87 of file nr-filter-slot.h.

Referenced by _get_transformed_source_graphic(), get_result(), and getcairo().

◆ _source_graphic_area

Geom::IntRect Inkscape::Filters::FilterSlot::_source_graphic_area
private

Definition at line 89 of file nr-filter-slot.h.

Referenced by _get_transformed_source_graphic(), FilterSlot(), and get_result().

◆ _units

FilterUnits const& Inkscape::Filters::FilterSlot::_units
private

◆ device_scale

int Inkscape::Filters::FilterSlot::device_scale
private

Definition at line 94 of file nr-filter-slot.h.

Referenced by _get_transformed_background(), and get_device_scale().

◆ rc

RenderContext& Inkscape::Filters::FilterSlot::rc
private

Definition at line 95 of file nr-filter-slot.h.

Referenced by get_rendercontext().


The documentation for this class was generated from the following files: