17 #ifndef QGSPAINTEFFECT_H 
   18 #define QGSPAINTEFFECT_H 
   20 #include "qgis_core.h" 
   23 #include <QDomDocument> 
   24 #include <QDomElement> 
   57     if ( sipCpp->type() == 
"drawSource" && 
dynamic_cast<QgsDrawSourceEffect *
>( sipCpp ) != NULL )
 
   59       sipType = sipType_QgsDrawSourceEffect;
 
   61     else if ( sipCpp->type() == 
"effectStack" && 
dynamic_cast<QgsEffectStack *
>( sipCpp ) != NULL )
 
   63       sipType = sipType_QgsEffectStack;
 
   65     else if ( sipCpp->type() == 
"blur" && 
dynamic_cast<QgsBlurEffect *
>( sipCpp ) != NULL )
 
   67       sipType = sipType_QgsBlurEffect;
 
   69     else if ( sipCpp->type() == 
"dropShadow" && 
dynamic_cast<QgsDropShadowEffect *
>( sipCpp ) != NULL )
 
   71       sipType = sipType_QgsDropShadowEffect;
 
   73     else if ( sipCpp->type() == 
"outerGlow" && 
dynamic_cast<QgsOuterGlowEffect *
>( sipCpp ) != NULL )
 
   75       sipType = sipType_QgsOuterGlowEffect;
 
   77     else if ( sipCpp->type() == 
"innerGlow" && 
dynamic_cast<QgsInnerGlowEffect *
>( sipCpp ) != NULL )
 
   79       sipType = sipType_QgsInnerGlowEffect;
 
   81     else if ( sipCpp->type() == 
"transform" && 
dynamic_cast<QgsTransformEffect *
>( sipCpp ) != NULL )
 
   83       sipType = sipType_QgsTransformEffect;
 
   85     else if ( sipCpp->type() == 
"color" && 
dynamic_cast<QgsColorEffect *
>( sipCpp ) != NULL )
 
   87       sipType = sipType_QgsColorEffect;
 
  122     virtual QString 
type() 
const = 0;
 
  156     virtual bool saveProperties( QDomDocument &doc, QDomElement &element ) 
const;
 
  164     virtual bool readProperties( 
const QDomElement &element );
 
  204     void setEnabled( 
bool enabled );
 
  220     void setDrawMode( DrawMode drawMode );
 
  224     bool mEnabled = 
true;
 
  226     bool requiresQPainterDpiFix = 
true;
 
  244     void drawSource( QPainter &painter );
 
  253     const QPicture *
source()
 const { 
return mPicture; }
 
  286     virtual QRectF boundingRect( 
const QRectF &rect, 
const QgsRenderContext &context ) 
const;
 
  294     void fixQPictureDpi( QPainter *painter ) 
const;
 
  298     const QPicture *mPicture = 
nullptr;
 
  299     QImage *mSourceImage = 
nullptr;
 
  300     bool mOwnsImage = 
false;
 
  302     QPainter *mPrevPainter = 
nullptr;
 
  303     QPainter *mEffectPainter = 
nullptr;
 
  304     QPicture *mTempPicture = 
nullptr;
 
  341     QString 
type()
 const override { 
return QStringLiteral( 
"drawSource" ); }
 
  343     QVariantMap properties() const override;
 
  344     void readProperties( const QVariantMap &props ) override;
 
  352     void setOpacity( const 
double opacity ) { mOpacity = opacity; }
 
  368     void setBlendMode( 
const QPainter::CompositionMode mode ) { mBlendMode = mode; }
 
  376     QPainter::CompositionMode 
blendMode()
 const { 
return mBlendMode; }
 
  384     double mOpacity = 1.0;
 
  385     QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
 
  431     QPainter *operator->() { 
return mPainter; }
 
  440     QPainter *mPainter = 
nullptr;
 
A paint effect which blurs a source picture, using a number of different blur methods.
A paint effect which alters the colors (e.g., brightness, contrast) in a source picture.
A paint effect which draws the source picture with minor or no alterations.
QPainter::CompositionMode blendMode() const
Returns the blend mode for the effect.
void setBlendMode(const QPainter::CompositionMode mode)
Sets the blend mode for the effect.
QgsDrawSourceEffect()=default
Constructor for QgsDrawSourceEffect.
double opacity() const
Returns the opacity for the effect.
QString type() const override
Returns the effect type.
A paint effect which draws an offset and optionally blurred drop shadow.
A class to manager painter saving and restoring required for effect drawing.
A paint effect which consists of a stack of other chained paint effects.
QgsEffectStack & operator=(const QgsEffectStack &rhs)
A paint effect which draws a glow within a picture.
A paint effect which draws a glow outside of a picture.
Base class for visual effects which can be applied to QPicture drawings.
QgsPaintEffect()=default
Constructor for QgsPaintEffect.
virtual void readProperties(const QVariantMap &props)=0
Reads a string map of an effect's properties and restores the effect to the state described by the pr...
const QPicture * source() const
Returns the source QPicture.
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
DrawMode drawMode() const
Returns the draw mode for the effect.
bool enabled() const
Returns whether the effect is enabled.
virtual QVariantMap properties() const =0
Returns the properties describing the paint effect encoded in a string format.
DrawMode
Drawing modes for effects.
@ Render
The result of the effect is rendered on the destination, but does not affect subsequent effects in th...
@ Modifier
The result of the effect is not rendered, but is passed on to following effects in the stack.
virtual void draw(QgsRenderContext &context)=0
Handles drawing of the effect's result on to the specified render context.
virtual QString type() const =0
Returns the effect type.
Contains information about the context of a rendering operation.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_NODEFAULTCTORS