23 : m_refPaintDevice(refPaintDevice)
24 , m_selection(selection)
25 , m_resources(resources)
26 , m_useFastMode(false)
27 , m_selectionOnly(false)
28 , m_useSelectionAsBoundary(false)
33 , m_stopGrowingAtDarkestPixel(false)
38 , m_continuousFillMode(ContinuousFillMode_DoNotUse)
39 , m_continuousFillMask(nullptr)
40 , m_continuousFillReferenceColor(nullptr)
43 , m_useCustomBlendingOptions(false)
46 , m_progressHelper(nullptr)
52 Q_UNUSED(undoAdapter);
82 if (autoKeyframeCommand) {
94 if (fillRect.contains(seedPoint)) {
107 normalFill(device, fillRect, seedPoint, undoAdapter);
142 Q_FOREACH (
const QRect &rc, dirtyRect) {
143 painter.
bitBlt(rc.topLeft(), filledDevice, rc);
176 fillPainter.
setWidth(fillRect.width());
177 fillPainter.
setHeight(fillRect.height());
189 fillPainter.
fillColor(seedPoint.x(), seedPoint.y(), sourceDevice);
196 Q_FOREACH(
const QRect &r, dirtyRects) {
243 if (referenceColor != referenceDeviceColor) {
294 trimmedFillSelection = newFillSelection;
const quint8 OPACITY_TRANSPARENT_U8
const qreal OPACITY_OPAQUE_F
const quint8 OPACITY_OPAQUE_U8
const QString COMPOSITE_OVER
void setOutDirtyRect(QSharedPointer< QRect > outDirtyRect)
void setSeedPoints(const QVector< QPoint > &seedPoints)
void setStopGrowingAtDarkestPixel(bool stopGrowingAtDarkestPixel)
void setUseFastMode(bool useFastMode)
void setUseCustomBlendingOptions(bool useCustomBlendingOptions)
QSharedPointer< KoColor > m_continuousFillReferenceColor
QSharedPointer< ProgressHelper > m_progressHelper
void visitColorizeMask(KisColorizeMask *mask, KisUndoAdapter *undoAdapter) override
KisResourcesSnapshotSP m_resources
void normalFill(KisPaintDeviceSP device, const QRect &fillRect, const QPoint &seedPoint, KisUndoAdapter *undoAdapter)
void setSeedPoint(const QPoint &seedPoint)
void setFeather(int feather)
QSharedPointer< QRect > m_outDirtyRect
void setCustomCompositeOp(const QString &customCompositeOp)
void setProgressHelper(QSharedPointer< ProgressHelper > progressHelper)
void setOpacitySpread(int opacitySpread)
bool m_useCustomBlendingOptions
void setAntiAlias(bool antiAlias)
void setSelectionOnly(bool selectionOnly)
void setUseBgColor(bool useBgColor)
void continuousFill(KisPaintDeviceSP device, const QRect &fillRect, const QPoint &seedPoint, KisUndoAdapter *undoAdapter)
void setContinuousFillMask(KisSelectionSP continuousFillMask)
KisSelectionSP m_continuousFillMask
void setFillThreshold(int fillThreshold)
void setUnmerged(bool unmerged)
bool m_stopGrowingAtDarkestPixel
void setRegionFillingBoundaryColor(const KoColor ®ionFillingBoundaryColor)
void fillPaintDevice(KisPaintDeviceSP device, KisUndoAdapter *undoAdapter)
void setSizeMod(int sizemod)
void visitExternalLayer(KisExternalLayer *layer, KisUndoAdapter *undoAdapter) override
QVector< QPoint > m_seedPoints
void setUsePattern(bool usePattern)
void setCustomOpacity(qreal customOpacity)
void selectionFill(KisPaintDeviceSP device, const QRect &fillRect, KisUndoAdapter *undoAdapter)
void setContinuousFillReferenceColor(const QSharedPointer< KoColor > continuousFillReferenceColor)
KoColor m_regionFillingBoundaryColor
QString m_customCompositeOp
ContinuousFillMode m_continuousFillMode
void setRegionFillingMode(KisFillPainter::RegionFillingMode regionFillingMode)
KisSelectionSP m_selection
FillProcessingVisitor(KisPaintDeviceSP referencePaintDevice, KisSelectionSP selection, KisResourcesSnapshotSP resources)
void setCloseGap(int gap)
void setContinuousFillMode(ContinuousFillMode continuousFillMode)
bool m_useSelectionAsBoundary
@ ContinuousFillMode_FillSimilarRegions
@ ContinuousFillMode_DoNotUse
KisFillPainter::RegionFillingMode m_regionFillingMode
KisPaintDeviceSP m_refPaintDevice
void setUseSelectionAsBoundary(bool useSelectionAsBoundary)
void visitNodeWithPaintDevice(KisNode *node, KisUndoAdapter *undoAdapter) override
KisPaintDeviceSP coloringProjection() const
virtual WrapAroundAxis wrapAroundModeAxis() const =0
virtual bool wrapAroundMode() const =0
virtual QRect imageBorderRect() const
void setSizemod(int sizemod)
void setFillThreshold(int threshold)
void setFeather(int feather)
void setCloseGap(int gap)
void setRegionFillingMode(RegionFillingMode regionFillingMode)
KisPixelSelectionSP createFloodSelection(int startX, int startY, KisPaintDeviceSP sourceDevice, KisPaintDeviceSP existingSelection)
void fillRect(qint32 x, qint32 y, qint32 w, qint32 h, const KoColor &c, quint8 opacity)
void setCareForSelection(bool set)
void setUseSelectionAsBoundary(bool useSelectionAsBoundary)
void setRegionFillingBoundaryColor(const KoColor ®ionFillingBoundaryColor)
void setUseCompositing(bool useCompositing)
void fillColor(int startX, int startY, KisPaintDeviceSP sourceDevice)
void fillPattern(int startX, int startY, KisPaintDeviceSP sourceDevice, QTransform patternTransform=QTransform())
void setAntiAlias(bool antiAlias)
@ RegionFillingMode_BoundaryFill
void setStopGrowingAtDarkestPixel(bool stopGrowingAtDarkestPixel)
void setOpacitySpread(int opacitySpread)
void fillRectNoCompose(const QRect &rc, const KoPatternSP pattern, const QTransform transform)
fillRect Fill a rectangle with a certain pattern. The pattern is repeated if it does not fit the enti...
static KisImageResolutionProxySP identity()
QRect bounds() const override
QRect nonDefaultPixelArea() const
KisPaintDeviceSP createCompositionSourceDevice() const
const KoColorSpace * colorSpace() const
bool pixel(qint32 x, qint32 y, QColor *c) const
KisDefaultBoundsBaseSP defaultBounds() const
void endTransaction(KisUndoAdapter *undoAdapter)
Finish the undoable paint operation.
void beginTransaction(const KUndo2MagicString &transactionName=KUndo2MagicString(), int timedID=-1)
Begin an undoable paint operation.
void setOpacityF(qreal opacity)
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
void setProgress(KoUpdater *progressUpdater)
void setPaintColor(const KoColor &color)
QVector< QRect > takeDirtyRegion()
void setCompositeOpId(const KoCompositeOp *op)
void setupPainter(KisPainter *painter)
KoPatternSP currentPattern() const
KoColor currentBgColor() const
QTransform fillTransform() const
KoColor currentFgColor() const
virtual void addCommand(KUndo2Command *cmd)=0
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
KUndo2Command * tryAutoCreateDuplicatedFrame(KisPaintDeviceSP device, AutoCreateKeyframeFlags flags)
create a new duplicated keyframe if auto-keyframe mode is on
virtual KisPaintDeviceSP paintDevice() const =0
void applySelection(KisPixelSelectionSP selection, SelectionAction action)
KisPixelSelectionSP projection() const
bool hasNonEmptyPixelSelection() const
KisImageResolutionProxySP resolutionProxy
KisPixelSelectionSP pixelSelection
QRect selectedRect() const
static QPoint ptToWrappedPt(QPoint pt, const QRect &wrapRect, WrapAroundAxis wrapAxis)