mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
This commit adds a new framework for implementing paint effects, which modify the results of QPainter operations to apply visual effects such as drop shadows and blurs. The initial implementation allows for effects to be applied to entire layers and individual symbol layers. Included are a drop shadow, inner shadow, blur, inner glow, outer glow, colorise and transform effect. A "stack" effect is also implemented which allows other paint effects to be combined in various ways. Sponsored by hundreds of generous kickstarter contributors!
100 lines
3.0 KiB
Plaintext
100 lines
3.0 KiB
Plaintext
/** \ingroup core
|
|
* \class QgsBlurEffect
|
|
* \brief A paint effect which blurs a source picture, using a number of different blur
|
|
* methods.
|
|
*
|
|
* \note Added in version 2.9
|
|
*/
|
|
|
|
class QgsBlurEffect : QgsPaintEffect
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsblureffect.h>
|
|
%End
|
|
|
|
public:
|
|
|
|
/** Available blur methods (algorithms) */
|
|
enum BlurMethod
|
|
{
|
|
StackBlur, /*< stack blur, a fast but low quality blur. Valid blur level values are between 0 - 16.*/
|
|
GaussianBlur /*< Gaussian blur, a slower but high quality blur. Blur level values are the distance in pixels for the blur operation. */
|
|
};
|
|
|
|
/** Creates a new QgsBlurEffect effect from a properties string map.
|
|
* @param map encoded properties string map
|
|
* @returns new QgsBlurEffect
|
|
*/
|
|
static QgsPaintEffect* create( const QgsStringMap& ) /Factory/;
|
|
|
|
QgsBlurEffect();
|
|
virtual ~QgsBlurEffect();
|
|
|
|
virtual QString type() const;
|
|
virtual QgsStringMap properties() const;
|
|
virtual void readProperties( const QgsStringMap& props );
|
|
virtual QgsPaintEffect* clone() const /Factory/;
|
|
|
|
/** Sets blur level (strength)
|
|
* @param level blur level. Depending on the current @link blurMethod @endlink, this parameter
|
|
* has different effects
|
|
* @see blurLevel
|
|
* @see blurMethod
|
|
*/
|
|
void setBlurLevel( const int level );
|
|
|
|
/** Returns the blur level (strength)
|
|
* @returns blur level. Depending on the current @link blurMethod @endlink, this parameter
|
|
* has different effects
|
|
* @see setBlurLevel
|
|
* @see blurMethod
|
|
*/
|
|
int blurLevel() const;
|
|
|
|
/** Sets the blur method (algorithm) to use for performing the blur.
|
|
* @param method blur method
|
|
* @see blurMethod
|
|
*/
|
|
void setBlurMethod( const BlurMethod method );
|
|
|
|
/** Returns the blur method (algorithm) used for performing the blur.
|
|
* @returns blur method
|
|
* @see setBlurMethod
|
|
*/
|
|
BlurMethod blurMethod() const;
|
|
|
|
/** Sets the transparency for the effect
|
|
* @param transparency double between 0 and 1 inclusive, where 0 is fully opaque
|
|
* and 1 is fully transparent
|
|
* @see transparency
|
|
*/
|
|
void setTransparency( const double transparency );
|
|
|
|
/** Returns the transparency for the effect
|
|
* @returns transparency value between 0 and 1 inclusive, where 0 is fully opaque
|
|
* and 1 is fully transparent
|
|
* @see setTransparency
|
|
*/
|
|
double transparency() const;
|
|
|
|
/** Sets the blend mode for the effect
|
|
* @param mode blend mode used for drawing the effect on to a destination
|
|
* paint device
|
|
* @see blendMode
|
|
*/
|
|
void setBlendMode( const QPainter::CompositionMode mode );
|
|
|
|
/** Returns the blend mode for the effect
|
|
* @returns blend mode used for drawing the effect on to a destination
|
|
* paint device
|
|
* @see setBlendMode
|
|
*/
|
|
QPainter::CompositionMode blendMode() const;
|
|
|
|
protected:
|
|
|
|
virtual void draw( QgsRenderContext& context );
|
|
virtual QRectF boundingRect( const QRectF& rect, const QgsRenderContext& context ) const;
|
|
|
|
};
|