56 border = qCeil(0.5 * size) + 1;
84 const QRect &applyRect,
89 if (applyRect.isEmpty())
return;
117 gc.
bitBlt(applyRect.topLeft(), dilatedSelection, applyRect);
120 gc.
bitBlt(applyRect.topLeft(), erodedSelection, applyRect);
124 const QString compositeOp = config->
blendMode();
125 const quint8 opacityU8 = quint8(qRound(255.0 / 100.0 * config->
opacity()));
137 const QRect &applyRect,
148 applyStroke(src, dst, blower, applyRect, w.config, style->resourcesInterface(), env);
157 return kisGrowRect(
rect, borderSize(w.config->position(), w.config->size()));
const QString COMPOSITE_COPY
const QString COMPOSITE_ERASE
static void applyErodeU8(KisPaintDeviceSP device, const QRect &rect, qreal radius, const QBitArray &channelFlags, KoUpdater *progressUpdater, bool createTransaction=false)
static void applyDilate(KisPaintDeviceSP device, const QRect &rect, qreal radius, const QBitArray &channelFlags, KoUpdater *progressUpdater, bool createTransaction=false)
KisSelectionSP knockoutSelectionLazy()
QRect changedRect(const QRect &rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override
void processDirectly(KisPaintDeviceSP src, KisMultipleProjection *dst, KisLayerStyleKnockoutBlower *blower, const QRect &applyRect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override
void applyStroke(KisPaintDeviceSP srcDevice, KisMultipleProjection *dst, KisLayerStyleKnockoutBlower *blower, const QRect &applyRect, const psd_layer_effects_stroke *config, KisResourcesInterfaceSP resourcesInterface, KisLayerStyleFilterEnvironment *env) const
KisLayerStyleFilter * clone() const override
KritaUtils::ThresholdMode sourcePlaneOpacityThresholdRequirement(KisPSDLayerStyleSP style) const
QRect neededRect(const QRect &rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override
KisPaintDeviceSP getProjection(const QString &id, const QString &compositeOpId, quint8 opacity, const QBitArray &channelFlags, KisPaintDeviceSP prototype)
static QString defaultProjectionId()
void makeCloneFromRough(KisPaintDeviceSP src, const QRect &minimalRect)
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
void setCompositeOpId(const KoCompositeOp *op)
QString blendMode() const
bool effectEnabled() const
#define KIS_ASSERT_RECOVER_RETURN(cond)
T kisGrowRect(const T &rect, U offset)
int size(const Forest< T > &forest)
void fillOverlayDevice(KisPaintDeviceSP fillDevice, const QRect &applyRect, const psd_layer_effects_overlay_base *config, KisResourcesInterfaceSP resourcesInterface, KisLayerStyleFilterEnvironment *env)
bool checkEffectEnabled(const psd_layer_effects_shadow_base *config, KisMultipleProjection *dst)
void selectionFromAlphaChannel(KisPaintDeviceSP srcDevice, KisSelectionSP dstSelection, const QRect &srcRect)
int currentLevelOfDetail() const
KisCachedSelection * cachedSelection()
KisPixelSelectionSP pixelSelection
psd_stroke_position position() const