Inkscape
Vector Graphics Editor
|
#include <drawing-image.h>
Public Member Functions | |
DrawingImage (Drawing &drawing) | |
int | tag () const override |
Unlink this node and its subtree from the rendering tree and destroy. | |
void | setStyle (SPStyle const *style, SPStyle const *context_style=nullptr) override |
Process information related to the new style. | |
void | setPixbuf (std::shared_ptr< Inkscape::Pixbuf const > pb) |
void | setScale (double sx, double sy) |
void | setOrigin (Geom::Point const &o) |
void | setClipbox (Geom::Rect const &box) |
Geom::Rect | bounds () const |
![]() | |
DrawingItem (Drawing &drawing) | |
DrawingItem (DrawingItem const &)=delete | |
DrawingItem & | operator= (DrawingItem const &)=delete |
void | unlink () |
Geom::OptIntRect const & | bbox () const |
Geom::OptIntRect const & | drawbox () const |
Geom::OptRect const & | itemBounds () const |
Geom::Affine const & | ctm () const |
Geom::Affine | transform () const |
Drawing & | drawing () const |
DrawingItem * | parent () const |
bool | isAncestorOf (DrawingItem const *item) const |
Returns true if item is among the descendants. Will return false if item == this. | |
int | getUpdateComplexity () const |
bool | unisolatedBlend () const |
void | appendChild (DrawingItem *item) |
void | prependChild (DrawingItem *item) |
void | clearChildren () |
bool | visible () const |
void | setVisible (bool visible) |
bool | sensitive () const |
void | setSensitive (bool sensitive) |
virtual void | setChildrenStyle (SPStyle const *context_style) |
Recursively update children style. | |
void | setOpacity (float opacity) |
void | setAntialiasing (Antialiasing antialias) |
void | setIsolation (bool isolation) |
void | setBlendMode (SPBlendMode blend_mode) |
void | setTransform (Geom::Affine const &trans) |
void | setClip (DrawingItem *item) |
void | setMask (DrawingItem *item) |
void | setFillPattern (DrawingPattern *pattern) |
void | setStrokePattern (DrawingPattern *pattern) |
void | setZOrder (unsigned zorder) |
Move this item to the given place in the Z order of siblings. Does nothing if the item is not a normal child. | |
void | setItemBounds (Geom::OptRect const &bounds) |
void | setFilterRenderer (std::unique_ptr< Filters::Filter > renderer) |
void | setKey (unsigned key) |
unsigned | key () const |
void | setItem (SPItem *item) |
SPItem * | getItem () const |
void | update (Geom::IntRect const &area=Geom::IntRect::infinite(), UpdateContext const &ctx=UpdateContext(), unsigned flags=STATE_ALL, unsigned reset=0) |
Update derived data before operations. | |
unsigned | render (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags=0, DrawingItem const *stop_at=nullptr) const |
Rasterize items. | |
unsigned | render (DrawingContext &dc, Geom::IntRect const &area, unsigned flags=0) const |
A stand alone render, ignoring all other objects in the document. | |
void | clip (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area) const |
Rasterize the clipping path. | |
DrawingItem * | pick (Geom::Point const &p, double delta, unsigned flags=0) |
Get the item under the specified point. | |
Glib::ustring | name () const |
void | recursivePrintTree (unsigned level=0) const |
Protected Member Functions | |
~DrawingImage () override=default | |
unsigned | _updateItem (Geom::IntRect const &area, UpdateContext const &ctx, unsigned flags, unsigned reset) override |
unsigned | _renderItem (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags, DrawingItem const *stop_at) const override |
DrawingItem * | _pickItem (Geom::Point const &p, double delta, unsigned flags) override |
![]() | |
virtual | ~DrawingItem () |
void | _renderOutline (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags) const |
void | _markForUpdate (unsigned state, bool propagate) |
Marks the item as needing a recomputation of internal data. | |
void | _markForRendering () |
Marks the current visual bounding box of the item for redrawing. | |
void | _invalidateFilterBackground (Geom::IntRect const &area) |
double | _cacheScore () |
Compute the caching score. | |
Geom::OptIntRect | _cacheRect () const |
void | _setCached (bool cached, bool persistent=false) |
Enable / disable storing the rendering in memory. | |
virtual void | _clipItem (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area) const |
virtual bool | _canClip () const |
virtual void | _dropPatternCache () |
template<typename F > | |
void | defer (F &&f) |
Protected Attributes | |
std::shared_ptr< Inkscape::Pixbuf const > | _pixbuf |
SPImageRendering | style_image_rendering |
Geom::Rect | _clipbox |
for preserveAspectRatio | |
Geom::Point | _origin |
Geom::Scale | _scale |
![]() | |
Drawing & | _drawing |
DrawingItem * | _parent |
ListHook | _child_hook |
ChildrenList | _children |
unsigned | _key |
Auxiliary key used by the object tree for showing clips/masks/patterns. | |
SPItem * | _item |
Used to associate DrawingItems with SPItems that created them. | |
SPStyle const * | _style |
SPStyle const * | _context_style |
float | _opacity |
std::unique_ptr< Geom::Affine > | _transform |
Incremental transform from parent to this item's coords. | |
Geom::Affine | _ctm |
Total transform from item coords to display coords. | |
Geom::OptIntRect | _bbox |
Bounding box in display (pixel) coords including stroke. | |
Geom::OptIntRect | _drawbox |
Full visual bounding box - enlarged by filters, shrunk by clips and masks. | |
Geom::OptRect | _item_bbox |
Geometric bounding box in item's user space. | |
DrawingItem * | _clip |
DrawingItem * | _mask |
DrawingPattern * | _fill_pattern |
DrawingPattern * | _stroke_pattern |
std::unique_ptr< Inkscape::Filters::Filter > | _filter |
std::unique_ptr< CacheData > | _cache |
int | _update_complexity = 0 |
bool | _contains_unisolated_blend: 1 |
CacheList::iterator | _cache_iterator |
bool | style_vector_effect_size: 1 |
bool | style_vector_effect_rotate: 1 |
bool | style_vector_effect_fixed: 1 |
unsigned | _state: 8 |
unsigned | _propagate_state: 8 |
ChildType | _child_type: 3 |
unsigned | _background_new: 1 |
Whether enable-background: new is set for this element. | |
unsigned | _background_accumulate: 1 |
Whether this element accumulates background (has any ancestor with enable-background: new) | |
unsigned | _visible: 1 |
unsigned | _sensitive: 1 |
Whether this item responds to events. | |
unsigned | _cached_persistent: 1 |
If set, will always be cached regardless of score. | |
unsigned | _has_cache_iterator: 1 |
If set, _cache_iterator is valid. | |
unsigned | _pick_children: 1 |
For groups: if true, children are returned from pick(), otherwise the group is returned. | |
Antialiasing | _antialias: 2 |
antialiasing level (default is Good) | |
bool | _isolation: 1 |
SPBlendMode | _blend_mode |
Additional Inherited Members | |
![]() | |
enum | RenderFlags { RENDER_DEFAULT = 0 , RENDER_CACHE_ONLY = 1 << 0 , RENDER_BYPASS_CACHE = 1 << 1 , RENDER_FILTER_BACKGROUND = 1 << 2 , RENDER_OUTLINE = 1 << 3 , RENDER_NO_FILTERS = 1 << 4 , RENDER_VISIBLE_HAIRLINES = 1 << 5 } |
enum | StateFlags { STATE_NONE = 0 , STATE_BBOX = 1 << 0 , STATE_CACHE = 1 << 1 , STATE_PICK = 1 << 2 , STATE_RENDER = 1 << 3 , STATE_BACKGROUND = 1 << 4 , STATE_ALL = (1 << 5) - 1 , STATE_TOTAL_INV = 1 << 5 } |
enum | PickFlags { PICK_NORMAL = 0 , PICK_STICKY = 1 << 0 , PICK_AS_CLIP = 1 << 1 , PICK_OUTLINE = 1 << 2 } |
![]() | |
enum class | ChildType : unsigned char { ORPHAN = 0 , NORMAL = 1 , CLIP = 2 , MASK = 3 , FILL = 4 , STROKE = 5 , ROOT = 6 } |
enum | RenderResult { RENDER_OK = 0 , RENDER_STOP = 1 } |
using | ListHook = boost::intrusive::list_member_hook<> |
using | ChildrenList = boost::intrusive::list< DrawingItem, boost::intrusive::member_hook< DrawingItem, ListHook, &DrawingItem::_child_hook > > |
Definition at line 26 of file drawing-image.h.
Inkscape::DrawingImage::DrawingImage | ( | Drawing & | drawing | ) |
Definition at line 23 of file drawing-image.cpp.
|
overrideprotecteddefault |
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Definition at line 202 of file drawing-image.cpp.
References Inkscape::DrawingItem::_ctm, Inkscape::DrawingItem::_drawing, Inkscape::DrawingItem::_opacity, _origin, _pixbuf, _scale, bounds(), Geom::GenericRect< C >::contains(), Geom::GenericRect< C >::corner(), delta, Inkscape::distance_to_segment(), floor(), height, Inkscape::Drawing::imageOutlineMode(), Geom::Affine::inverse(), Inkscape::outline(), Inkscape::Pixbuf::PF_CAIRO, Inkscape::Pixbuf::PF_GDK, Inkscape::DrawingItem::pick(), Inkscape::DrawingItem::PICK_OUTLINE, width, Geom::X, and Geom::Y.
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Definition at line 104 of file drawing-image.cpp.
References _clipbox, Inkscape::DrawingItem::_ctm, Inkscape::DrawingItem::_drawing, _origin, _pixbuf, _scale, bounds(), Inkscape::DrawingContext::clip(), Inkscape::Drawing::colorMode(), Geom::GenericRect< C >::corner(), Inkscape::GRAYSCALE, Inkscape::Drawing::grayscaleMatrix(), Inkscape::Drawing::imageOutlineColor(), Inkscape::Drawing::imageOutlineMode(), ink_cairo_surface_filter(), Inkscape::DrawingContext::lineTo(), Inkscape::DrawingContext::moveTo(), Inkscape::DrawingContext::newPath(), Inkscape::outline(), Inkscape::DrawingContext::paint(), Inkscape::DrawingContext::patternSetExtend(), Inkscape::DrawingContext::patternSetFilter(), Inkscape::DrawingContext::popGroupToSource(), Inkscape::DrawingContext::pushGroup(), Inkscape::DrawingContext::rawTarget(), Inkscape::DrawingContext::rectangle(), Inkscape::DrawingItem::RENDER_OK, Inkscape::DrawingItem::RENDER_OUTLINE, Inkscape::DrawingContext::scale(), Inkscape::DrawingContext::setLineWidth(), Inkscape::DrawingContext::setSource(), SP_CSS_IMAGE_RENDERING_AUTO, SP_CSS_IMAGE_RENDERING_CRISPEDGES, SP_CSS_IMAGE_RENDERING_OPTIMIZEQUALITY, SP_CSS_IMAGE_RENDERING_OPTIMIZESPEED, SP_CSS_IMAGE_RENDERING_PIXELATED, Inkscape::DrawingContext::stroke(), style_image_rendering, Inkscape::DrawingContext::transform(), and Inkscape::DrawingContext::translate().
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Definition at line 91 of file drawing-image.cpp.
References Inkscape::DrawingItem::_bbox, Inkscape::DrawingItem::_ctm, _pixbuf, bounds(), Geom::Rect::roundOutwards(), and Inkscape::DrawingItem::STATE_ALL.
Geom::Rect Inkscape::DrawingImage::bounds | ( | ) | const |
Definition at line 61 of file drawing-image.cpp.
References _clipbox, _origin, _pixbuf, _scale, Geom::GenericRect< C >::width(), Geom::X, and Geom::Y.
Referenced by _pickItem(), _renderItem(), and _updateItem().
void Inkscape::DrawingImage::setClipbox | ( | Geom::Rect const & | box | ) |
Definition at line 53 of file drawing-image.cpp.
References _clipbox, Inkscape::DrawingItem::_markForUpdate(), Inkscape::DrawingItem::defer(), and Inkscape::DrawingItem::STATE_ALL.
Referenced by sp_image_update_arenaitem().
void Inkscape::DrawingImage::setOrigin | ( | Geom::Point const & | o | ) |
Definition at line 45 of file drawing-image.cpp.
References Inkscape::DrawingItem::_markForUpdate(), _origin, Inkscape::DrawingItem::defer(), origin, and Inkscape::DrawingItem::STATE_ALL.
Referenced by sp_image_update_arenaitem().
void Inkscape::DrawingImage::setPixbuf | ( | std::shared_ptr< Inkscape::Pixbuf const > | pb | ) |
Definition at line 29 of file drawing-image.cpp.
References Inkscape::DrawingItem::_markForUpdate(), _pixbuf, Inkscape::DrawingItem::defer(), and Inkscape::DrawingItem::STATE_ALL.
Referenced by sp_image_update_arenaitem().
void Inkscape::DrawingImage::setScale | ( | double | sx, |
double | sy | ||
) |
Definition at line 37 of file drawing-image.cpp.
References Inkscape::DrawingItem::_markForUpdate(), _scale, Inkscape::DrawingItem::defer(), and Inkscape::DrawingItem::STATE_ALL.
Referenced by sp_image_update_arenaitem().
|
overridevirtual |
Process information related to the new style.
Note: _style is not used by DrawingGlyphs which uses its parent style.
Reimplemented from Inkscape::DrawingItem.
Definition at line 77 of file drawing-image.cpp.
References Inkscape::DrawingItem::_style, Inkscape::DrawingItem::defer(), SPStyle::image_rendering, Inkscape::DrawingItem::setStyle(), SP_CSS_IMAGE_RENDERING_AUTO, and style_image_rendering.
Referenced by sp_image_update_arenaitem().
|
inlineoverridevirtual |
Unlink this node and its subtree from the rendering tree and destroy.
Reimplemented from Inkscape::DrawingItem.
Definition at line 31 of file drawing-image.h.
References tag_of.
|
protected |
for preserveAspectRatio
Definition at line 53 of file drawing-image.h.
Referenced by _renderItem(), bounds(), and setClipbox().
|
protected |
Definition at line 54 of file drawing-image.h.
Referenced by _pickItem(), _renderItem(), bounds(), and setOrigin().
|
protected |
Definition at line 48 of file drawing-image.h.
Referenced by _pickItem(), _renderItem(), _updateItem(), bounds(), and setPixbuf().
|
protected |
Definition at line 55 of file drawing-image.h.
Referenced by _pickItem(), _renderItem(), bounds(), and setScale().
|
protected |
Definition at line 50 of file drawing-image.h.
Referenced by _renderItem(), and setStyle().