2
* This file is part of Krita
4
* Copyright (c) 2004 Cyrille Berger <cberger@cberger.net>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24
#include <kparts/plugin.h>
25
#include "kis_convolution_filter.h"
26
#include "kis_matrix.h"
31
// XXX: All these filters are loaded on document creation. A document
32
// can, theoretically, contain zero or more images of different
33
// depths. If there are zero images, then closing Krita will crash
35
class KisGaussianBlurFilter : public KisConvolutionConstFilter {
37
KisGaussianBlurFilter(KisView * view);
39
static inline KisID id() { return KisID("gaussian blur", i18n("Gaussian Blur")); };
40
virtual bool supportsPainting() { return true; }
41
virtual bool supportsIncrementalPainting() { return true; }
44
class KisSharpenFilter : public KisConvolutionConstFilter {
46
KisSharpenFilter(KisView * view);
48
static inline KisID id() { return KisID("sharpen", i18n("Sharpen")); };
49
virtual bool supportsPainting() { return false; }
50
virtual bool supportsIncrementalPainting() { return false; }
53
class KisMeanRemovalFilter : public KisConvolutionConstFilter {
55
KisMeanRemovalFilter(KisView * view);
57
static inline KisID id() { return KisID("mean removal", i18n("Mean Removal")); };
58
virtual bool supportsPainting() { return false; }
62
class KisEmbossLaplascianFilter : public KisConvolutionConstFilter {
64
KisEmbossLaplascianFilter(KisView * view);
66
static inline KisID id() { return KisID("emboss laplascian", i18n("Emboss Laplascian")); };
67
virtual bool supportsPainting() { return false; }
71
class KisEmbossInAllDirectionsFilter : public KisConvolutionConstFilter {
73
KisEmbossInAllDirectionsFilter(KisView * view);
75
static inline KisID id() { return KisID("emboss all directions", i18n("Emboss in All Directions")); };
76
virtual bool supportsPainting() { return false; }
80
class KisEmbossHorizontalVerticalFilter : public KisConvolutionConstFilter {
82
KisEmbossHorizontalVerticalFilter(KisView * view);
84
static inline KisID id() { return KisID("", i18n("Emboss Horizontal & Vertical")); };
85
virtual bool supportsPainting() { return false; }
89
class KisEmbossVerticalFilter : public KisConvolutionConstFilter {
91
KisEmbossVerticalFilter(KisView * view);
93
static inline KisID id() { return KisID("emboss vertical only", i18n("Emboss Vertical Only")); };
94
virtual bool supportsPainting() { return false; }
98
class KisEmbossHorizontalFilter : public KisConvolutionConstFilter {
100
KisEmbossHorizontalFilter(KisView * view);
102
static inline KisID id() { return KisID("emboss horizontal only", i18n("Emboss Horizontal Only")); };
103
virtual bool supportsPainting() { return false; }
107
class KisEmbossDiagonalFilter : public KisConvolutionConstFilter {
109
KisEmbossDiagonalFilter(KisView * view);
111
static inline KisID id() { return KisID("emboss diagonal", i18n("Emboss Diagonal")); };
112
virtual bool supportsPainting() { return false; }
116
class KisTopEdgeDetectionFilter : public KisConvolutionConstFilter {
118
KisTopEdgeDetectionFilter(KisView * view);
120
static inline KisID id() { return KisID("top edge detections", i18n("Top Edge Detection")); };
121
virtual bool supportsPainting() { return false; }
125
class KisRightEdgeDetectionFilter : public KisConvolutionConstFilter {
127
KisRightEdgeDetectionFilter(KisView * view);
129
static inline KisID id() { return KisID("right edge detections", i18n("Right Edge Detection")); };
130
virtual bool supportsPainting() { return false; }
134
class KisBottomEdgeDetectionFilter : public KisConvolutionConstFilter {
136
KisBottomEdgeDetectionFilter(KisView * view);
138
static inline KisID id() { return KisID("bottom edge detections", i18n("Bottom Edge Detection")); };
139
virtual bool supportsPainting() { return false; }
143
class KisLeftEdgeDetectionFilter : public KisConvolutionConstFilter {
145
KisLeftEdgeDetectionFilter(KisView * view);
147
static inline KisID id() { return KisID("left edge detections", i18n("Left Edge Detection")); };
148
virtual bool supportsPainting() { return false; }
153
class KritaConvolutionFilters : public KParts::Plugin
156
KritaConvolutionFilters(QObject *parent, const char *name, const QStringList &);
157
virtual ~KritaConvolutionFilters();