55 if (std::strcmp(value,
"normal") == 0)
59 if (std::strcmp(value,
"multiply") == 0)
63 if (std::strcmp(value,
"screen") == 0)
65 if (std::strcmp(value,
"saturation") == 0)
69 if (std::strcmp(value,
"darken") == 0)
71 if (std::strcmp(value,
"difference") == 0)
75 if (std::strcmp(value,
"lighten") == 0)
77 if (std::strcmp(value,
"luminosity") == 0)
81 if (std::strcmp(value,
"overlay") == 0)
85 if (std::strcmp(value,
"color-dodge") == 0)
87 if (std::strcmp(value,
"color-burn") == 0)
89 if (std::strcmp(value,
"color") == 0)
93 if (std::strcmp(value,
"hard-light") == 0)
95 if (std::strcmp(value,
"hue") == 0)
99 if (std::strcmp(value,
"exclusion") == 0)
102 std::cerr <<
"SPBlendMode: Unimplemented mode: " << value << std::endl;
145 mode =
"normal";
break;
147 mode =
"multiply";
break;
149 mode =
"screen";
break;
151 mode =
"darken";
break;
153 mode =
"lighten";
break;
155 mode =
"overlay";
break;
157 mode =
"color-dodge";
break;
159 mode =
"color-burn";
break;
161 mode =
"hard-light";
break;
163 mode =
"soft-light";
break;
165 mode =
"difference";
break;
167 mode =
"exclusion";
break;
171 mode =
"saturation";
break;
173 mode =
"color";
break;
175 mode =
"luminosity";
break;
193 auto blend = std::make_unique<Inkscape::Filters::FilterBlend>();
Lookup dictionary for attributes/properties.
static SPBlendMode read_mode(char const *value)
SVG drawing item for display.
Interface for refcounted XML nodes.
void setAttributeOrRemoveIfEmpty(Inkscape::Util::const_char_ptr key, Inkscape::Util::const_char_ptr value)
Change an attribute of this node.
void setAttribute(Util::const_char_ptr key, Util::const_char_ptr value)
Change an attribute of this node.
Typed SVG document implementation.
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
std::optional< std::string > in2_name
void resolve_slots(SlotResolver &) override
Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned flags) override
void set(SPAttr key, char const *value) override
std::unique_ptr< Inkscape::Filters::FilterPrimitive > build_renderer(Inkscape::DrawingItem *item) const override
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
void invalidate_parent_slots()
Inkscape::XML::Node * write(Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned flags) override
virtual void resolve_slots(SlotResolver &)
void set(SPAttr key, char const *value) override
void build_renderer_common(Inkscape::Filters::FilterPrimitive *primitive) const
Inkscape::XML::Node * repr
void requestModified(unsigned int flags)
Requests that a modification notification signal be emitted later (e.g.
void readAttr(char const *key)
Read value of key attribute from XML node into object.
bool read(char const *str)
auto to_cstr(std::optional< std::string > const &s)
bool assign(std::optional< std::string > &a, char const *b)
Helper class to stream background task notifications as a series of messages.
static cairo_user_data_key_t key
Document level base class for all SVG filter primitives.
Interface for XML documents.
virtual Node * createElement(char const *name)=0
@ SP_CSS_BLEND_LUMINOSITY
@ SP_CSS_BLEND_DIFFERENCE
@ SP_CSS_BLEND_COLORDODGE
@ SP_CSS_BLEND_SATURATION
Interface for XML documents.