Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_gradient_painter.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2004 Adrian Page <adrian@pagenet.plus.com>
3 * SPDX-FileCopyrightText: 2021 L. E. Segovia <amy@amyspark.me>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#ifndef KIS_GRADIENT_PAINTER_H_
8#define KIS_GRADIENT_PAINTER_H_
9
10#include <QScopedPointer>
11
12#include <KoColor.h>
13
14#include "kis_types.h"
15#include "kis_painter.h"
16
17#include <kritaimage_export.h>
18
19
23class KRITAIMAGE_EXPORT KisGradientPainter : public KisPainter
24{
25
26public:
27
31
32 ~KisGradientPainter() override;
33
45
51
52 void setGradientShape(enumGradientShape shape);
53
54 void precalculateShape();
55
59 bool paintGradient(const QPointF& gradientVectorStart,
60 const QPointF& gradientVectorEnd,
61 enumGradientRepeat repeat,
62 double antiAliasThreshold,
63 bool reverseGradient,
64 qint32 startx,
65 qint32 starty,
66 qint32 width,
67 qint32 height,
68 bool useDithering = false);
69
70 // convenience overload
71 bool paintGradient(const QPointF& gradientVectorStart,
72 const QPointF& gradientVectorEnd,
73 enumGradientRepeat repeat,
74 double antiAliasThreshold,
75 bool reverseGradient,
76 const QRect &applyRect,
77 bool useDithering = false);
78
79 template <class T>
80 bool paintGradient(const QPointF& gradientVectorStart,
81 const QPointF& gradientVectorEnd,
82 enumGradientRepeat repeat,
83 double antiAliasThreshold,
84 bool reverseGradient,
85 bool useDithering,
86 const QRect &applyRect,
87 T & paintPolicy);
88
89private:
90 struct Private;
91 const QScopedPointer<Private> m_d;
92};
93#endif //KIS_GRADIENT_PAINTER_H_
const QScopedPointer< Private > m_d