Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_painter_p.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISPAINTERPRIVATE_H
8#define KISPAINTERPRIVATE_H
9
10#include <KoColorSpace.h>
11#include <KoColor.h>
13#include <KoUpdater.h>
14#include "kis_paintop.h"
15#include "kis_selection.h"
16#include "kis_fill_painter.h"
17#include "kis_painter.h"
18#include "kis_paintop_preset.h"
20
21struct Q_DECL_HIDDEN KisPainter::Private {
22 Private(KisPainter *_q) : q(_q) {}
24 : q(_q), paintColor(cs), backgroundColor(cs) {}
25
26 KisPainter *q {nullptr};
27
30 KisTransaction* transaction {nullptr};
31 KoUpdater* progressUpdater {nullptr};
32
34 KisPaintOp* paintOp {nullptr};
39 KisPaintLayer* sourceLayer {nullptr};
40 FillStyle fillStyle {FillStyleNone};
41 StrokeStyle strokeStyle {StrokeStyleBrush};
42 bool antiAliasPolygonFill {true};
45 quint32 pixelSize {0};
46 const KoColorSpace* colorSpace {nullptr};
47 KoColorProfile* profile {nullptr};
48 const KoColorSpace* cachedSourceColorSpace {nullptr};
49 const KoCompositeOp* cachedCompositeOp {nullptr};
54 QPainter* maskPainter {nullptr};
55 KisFillPainter* fillPainter {nullptr};
57 qint32 maskImageWidth {255};
58 qint32 maskImageHeight {255};
59 QPointF axesCenter;
60 bool mirrorHorizontally {false};
61 bool mirrorVertically {false};
62 bool isOpacityUnit {true}; // TODO: move into ParameterInfo
65 KoColorConversionTransformation::ConversionFlags conversionFlags {KoColorConversionTransformation::Empty};
66 KisRunnableStrokeJobsInterface *runnableStrokeJobsInterface {nullptr};
67 QScopedPointer<KisRunnableStrokeJobsInterface> fakeRunnableStrokeJobsInterface;
68 QTransform patternTransform;
69
71
73 QRect *srcRect,
74 qint32 *srcX,
75 qint32 *srcY,
76 qint32 *srcWidth,
77 qint32 *srcHeight,
78 qint32 *dstX,
79 qint32 *dstY);
80
81 void fillPainterPathImpl(const QPainterPath& path, const QRect &requestedRect);
82
83 void applyDevice(const QRect &applyRect,
84 const KisRenderedDab &dab,
86 const KoColorSpace *srcColorSpace,
87 KoCompositeOp::ParameterInfo &localParamInfo);
88
89 void applyDeviceWithSelection(const QRect &applyRect,
90 const KisRenderedDab &dab,
93 const KoColorSpace *srcColorSpace,
94 KoCompositeOp::ParameterInfo &localParamInfo);
95
96 template<class T> QVector<T> calculateMirroredObjects(const T &object);
97
98};
99
100#endif // KISPAINTERPRIVATE_H
void applyDeviceWithSelection(const QRect &applyRect, const KisRenderedDab &dab, KisRandomAccessorSP dstIt, KisRandomConstAccessorSP maskIt, const KoColorSpace *srcColorSpace, KoCompositeOp::ParameterInfo &localParamInfo)
KoCompositeOp::ParameterInfo paramInfo
QString compositeOpId
KisPaintOpPresetSP paintOpPreset
void fillPainterPathImpl(const QPainterPath &path, const QRect &requestedRect)
QScopedPointer< KisRunnableStrokeJobsInterface > fakeRunnableStrokeJobsInterface
FillStyle
This enum contains the styles with which we can fill things like polygons and ellipses.
void applyDevice(const QRect &applyRect, const KisRenderedDab &dab, KisRandomAccessorSP dstIt, const KoColorSpace *srcColorSpace, KoCompositeOp::ParameterInfo &localParamInfo)
KoColor customColor
QPointF axesCenter
bool tryReduceSourceRect(const KisPaintDevice *srcDev, QRect *srcRect, qint32 *srcX, qint32 *srcY, qint32 *srcWidth, qint32 *srcHeight, qint32 *dstX, qint32 *dstY)
Private(KisPainter *_q, const KoColorSpace *cs)
Private(KisPainter *_q)
KoColor paintColor
KisFilterConfigurationSP generator
KisSelectionSP selection
KisPaintDeviceSP polygon
StrokeStyle
The style of the brush stroke around polygons and so.
QTransform patternTransform
QPointF duplicateOffset
QVector< T > calculateMirroredObjects(const T &object)
const KoCompositeOp * compositeOp(const KoColorSpace *srcCS)
QVector< QRect > dirtyRects
KisPaintDeviceSP device
KoColor backgroundColor
KoAbstractGradientSP gradient
QImage polygonMaskImage
KoPatternSP pattern