QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
|
A paint effect which consists of a stack of other chained paint effects. More...
#include <qgseffectstack.h>
Public Member Functions | |
QgsEffectStack ()=default | |
Constructor for empty QgsEffectStack. More... | |
QgsEffectStack (const QgsEffectStack &other) | |
QgsEffectStack (const QgsPaintEffect &effect) | |
Creates a new QgsEffectStack effect from a single initial effect. More... | |
QgsEffectStack (QgsEffectStack &&other) | |
Move constructor. More... | |
~QgsEffectStack () override | |
void | appendEffect (QgsPaintEffect *effect) |
Appends an effect to the end of the stack. More... | |
bool | changeEffect (int index, QgsPaintEffect *effect) |
Replaces the effect at a specified position within the stack. More... | |
QgsEffectStack * | clone () const override |
Duplicates an effect by creating a deep copy of the effect. More... | |
int | count () const |
Returns count of effects contained by the stack. More... | |
QgsPaintEffect * | effect (int index) const |
Returns a pointer to the effect at a specified index within the stack. More... | |
QList< QgsPaintEffect * > * | effectList () |
Returns a pointer to the list of effects currently contained by the stack. More... | |
bool | insertEffect (int index, QgsPaintEffect *effect) |
Inserts an effect at a specified index within the stack. More... | |
QgsEffectStack & | operator= (const QgsEffectStack &rhs) |
QgsEffectStack & | operator= (QgsEffectStack &&other) |
QgsStringMap | properties () const override |
Unused for QgsEffectStack, will always return an empty string map. More... | |
bool | readProperties (const QDomElement &element) override |
Restores the effect to the state described by a DOM element. More... | |
void | readProperties (const QgsStringMap &props) override |
Unused for QgsEffectStack, props parameter will be ignored. More... | |
bool | saveProperties (QDomDocument &doc, QDomElement &element) const override |
Saves the current state of the effect to a DOM element. More... | |
QgsPaintEffect * | takeEffect (int index) |
Removes an effect from the stack and returns a pointer to it. More... | |
QString | type () const override |
Returns the effect type. More... | |
Public Member Functions inherited from QgsPaintEffect | |
QgsPaintEffect ()=default | |
Constructor for QgsPaintEffect. More... | |
QgsPaintEffect (const QgsPaintEffect &other) | |
virtual | ~QgsPaintEffect () |
virtual void | begin (QgsRenderContext &context) |
Begins intercepting paint operations to a render context. More... | |
DrawMode | drawMode () const |
Returns the draw mode for the effect. More... | |
bool | enabled () const |
Returns whether the effect is enabled. More... | |
virtual void | end (QgsRenderContext &context) |
Ends interception of paint operations to a render context, and draws the result to the render context after being modified by the effect. More... | |
virtual void | render (QPicture &picture, QgsRenderContext &context) |
Renders a picture using the effect. More... | |
void | setDrawMode (DrawMode drawMode) |
Sets the draw mode for the effect. More... | |
void | setEnabled (bool enabled) |
Sets whether the effect is enabled. More... | |
Static Public Member Functions | |
static QgsPaintEffect * | create (const QgsStringMap &map) |
Creates a new QgsEffectStack effect. More... | |
Protected Member Functions | |
void | draw (QgsRenderContext &context) override |
Handles drawing of the effect's result on to the specified render context. More... | |
Protected Member Functions inherited from QgsPaintEffect | |
virtual QRectF | boundingRect (const QRectF &rect, const QgsRenderContext &context) const |
Returns the bounding rect required for drawing the effect. More... | |
void | drawSource (QPainter &painter) |
Draws the source QPicture onto the specified painter. More... | |
void | fixQPictureDpi (QPainter *painter) const |
Applies a workaround to a QPainter to avoid an issue with incorrect scaling when drawing QPictures. More... | |
QPointF | imageOffset (const QgsRenderContext &context) const |
Returns the offset which should be used when drawing the source image on to a destination render context. More... | |
const QPicture * | source () const |
Returns the source QPicture. More... | |
QImage * | sourceAsImage (QgsRenderContext &context) |
Returns the source QPicture rendered to a new QImage. More... | |
Additional Inherited Members | |
Public Types inherited from QgsPaintEffect | |
enum | DrawMode { Modifier, Render, ModifyAndRender } |
Drawing modes for effects. More... | |
Protected Attributes inherited from QgsPaintEffect | |
DrawMode | mDrawMode = ModifyAndRender |
bool | mEnabled = true |
bool | requiresQPainterDpiFix = true |
A paint effect which consists of a stack of other chained paint effects.
Effect stacks can be used to apply multiple paint effects to a QPicture. For instance, an effect stack may blur then apply a drop shadow.
The way in which effects apply to a stack is controlled by the effect's drawMode. Effects can either render their results onto the destination paint device, or just modify the source picture which is drawn by subsequent effects in the stack. For instance, a blur effect with a Modifier drawMode will blur the source picture for the following drop shadow effect without actually drawing the blurred picture to the paint device. If the blur effect had a Render drawMode then the blurred picture will be drawn on the paint device, but the following drop shadow effect will be drawn using the original picture, not the blurred version.
Definition at line 44 of file qgseffectstack.h.
|
default |
Constructor for empty QgsEffectStack.
QgsEffectStack::QgsEffectStack | ( | const QgsEffectStack & | other | ) |
Definition at line 24 of file qgseffectstack.cpp.
QgsEffectStack::QgsEffectStack | ( | QgsEffectStack && | other | ) |
Move constructor.
Definition at line 34 of file qgseffectstack.cpp.
|
explicit |
Creates a new QgsEffectStack effect from a single initial effect.
effect | initial effect to add to the stack. The effect will be cloned, so ownership is not transferred to the stack. |
Definition at line 40 of file qgseffectstack.cpp.
|
override |
Definition at line 45 of file qgseffectstack.cpp.
void QgsEffectStack::appendEffect | ( | QgsPaintEffect * | effect | ) |
Appends an effect to the end of the stack.
effect | QgsPaintEffect to append. Ownership of the effect will be transferred to the stack object. |
Definition at line 215 of file qgseffectstack.cpp.
bool QgsEffectStack::changeEffect | ( | int | index, |
QgsPaintEffect * | effect | ||
) |
Replaces the effect at a specified position within the stack.
index | position of effect to replace |
effect | QgsPaintEffect to replace with. Ownership of the effect will be transferred to the stack object. |
Definition at line 231 of file qgseffectstack.cpp.
|
overridevirtual |
Duplicates an effect by creating a deep copy of the effect.
Implements QgsPaintEffect.
Definition at line 147 of file qgseffectstack.cpp.
|
inline |
Returns count of effects contained by the stack.
Definition at line 136 of file qgseffectstack.h.
|
static |
Creates a new QgsEffectStack effect.
This method ignores the map parameter, and always returns an empty effect stack.
map | unused encoded properties string map |
Definition at line 72 of file qgseffectstack.cpp.
|
overrideprotectedvirtual |
Handles drawing of the effect's result on to the specified render context.
Derived classes must reimplement this method to apply any transformations to the source QPicture and draw the result using the context's painter.
context | destination render context |
Implements QgsPaintEffect.
Definition at line 79 of file qgseffectstack.cpp.
QgsPaintEffect * QgsEffectStack::effect | ( | int | index | ) | const |
Returns a pointer to the effect at a specified index within the stack.
index | position of effect to return |
Definition at line 256 of file qgseffectstack.cpp.
QList< QgsPaintEffect * > * QgsEffectStack::effectList | ( | ) |
Returns a pointer to the list of effects currently contained by the stack.
Definition at line 251 of file qgseffectstack.cpp.
bool QgsEffectStack::insertEffect | ( | int | index, |
QgsPaintEffect * | effect | ||
) |
Inserts an effect at a specified index within the stack.
index | position to insert the effect |
effect | QgsPaintEffect to insert. Ownership of the effect will be transferred to the stack object. |
Definition at line 220 of file qgseffectstack.cpp.
QgsEffectStack & QgsEffectStack::operator= | ( | const QgsEffectStack & | rhs | ) |
Definition at line 50 of file qgseffectstack.cpp.
QgsEffectStack & QgsEffectStack::operator= | ( | QgsEffectStack && | other | ) |
Definition at line 65 of file qgseffectstack.cpp.
|
overridevirtual |
Unused for QgsEffectStack, will always return an empty string map.
Implements QgsPaintEffect.
Definition at line 198 of file qgseffectstack.cpp.
|
overridevirtual |
Restores the effect to the state described by a DOM element.
element | DOM element describing an effect's state |
true
if read was successful Reimplemented from QgsPaintEffect.
Definition at line 175 of file qgseffectstack.cpp.
|
overridevirtual |
Unused for QgsEffectStack, props parameter will be ignored.
Implements QgsPaintEffect.
Definition at line 204 of file qgseffectstack.cpp.
|
overridevirtual |
Saves the current state of the effect to a DOM element.
The default behavior is to save the properties string map returned by properties().
doc | destination DOM document |
element | destination DOM element |
true
if save was successful Reimplemented from QgsPaintEffect.
Definition at line 152 of file qgseffectstack.cpp.
QgsPaintEffect * QgsEffectStack::takeEffect | ( | int | index | ) |
Removes an effect from the stack and returns a pointer to it.
index | position of effect to take |
Definition at line 243 of file qgseffectstack.cpp.
|
inlineoverridevirtual |
Returns the effect type.
Implements QgsPaintEffect.
Definition at line 79 of file qgseffectstack.h.