Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_convolution_painter.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2005 Cyrille Berger <cberger@cberger.net>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
#ifndef KIS_CONVOLUTION_PAINTER_H_
7
#define KIS_CONVOLUTION_PAINTER_H_
8
9
#include "
kis_types.h
"
10
#include "
kis_painter.h
"
11
#include "
kis_image.h
"
12
#include "kritaimage_export.h"
13
14
template
<
class
factory>
class
KisConvolutionWorker
;
15
16
17
enum
KisConvolutionBorderOp
{
18
BORDER_IGNORE
= 0,
// read the pixels outside of the application rect
19
BORDER_REPEAT
= 1
// Use the border for the missing pixels
20
};
21
29
class
KRITAIMAGE_EXPORT
KisConvolutionPainter
:
public
KisPainter
30
{
31
32
public
:
33
34
KisConvolutionPainter
();
35
KisConvolutionPainter
(
KisPaintDeviceSP
device);
36
KisConvolutionPainter
(
KisPaintDeviceSP
device,
KisSelectionSP
selection);
37
38
enum
EnginePreference
{
39
NONE
,
40
SPATIAL
,
41
FFTW
42
};
43
44
45
KisConvolutionPainter
(
KisPaintDeviceSP
device, EnginePreference enginePreference);
46
47
void
setEnginePreference(EnginePreference
value
);
48
71
void
applyMatrix(
const
KisConvolutionKernelSP
kernel,
const
KisPaintDeviceSP
src, QPoint srcPos, QPoint dstPos, QSize areaSize,
72
KisConvolutionBorderOp
borderOp =
BORDER_REPEAT
);
73
79
bool
needsTransaction(
const
KisConvolutionKernelSP
kernel)
const
;
80
81
static
bool
supportsFFTW();
82
83
protected
:
84
friend
class
KisConvolutionPainterTest;
85
86
87
88
private
:
89
template
<
class
factory>
90
KisConvolutionWorker<factory>
* createWorker(
const
KisConvolutionKernelSP
kernel,
91
KisPainter
*painter,
92
KoUpdater
*progress);
93
94
bool
useFFTImplementation(
const
KisConvolutionKernelSP
kernel)
const
;
95
96
private
:
97
EnginePreference
m_enginePreference
;
98
};
99
#endif
//KIS_CONVOLUTION_PAINTER_H_
value
float value(const T *src, size_t ch)
Definition
JPEGXLImport.cpp:93
KisConvolutionPainter
The KisConvolutionPainter class applies a convolution kernel to a paint device.
Definition
kis_convolution_painter.h:30
KisConvolutionPainter::EnginePreference
EnginePreference
Definition
kis_convolution_painter.h:38
KisConvolutionPainter::NONE
@ NONE
Definition
kis_convolution_painter.h:39
KisConvolutionPainter::SPATIAL
@ SPATIAL
Definition
kis_convolution_painter.h:40
KisConvolutionPainter::m_enginePreference
EnginePreference m_enginePreference
Definition
kis_convolution_painter.h:97
KisConvolutionWorker
Definition
kis_convolution_worker.h:58
KisPainter
Definition
kis_painter.h:66
KisSharedPtr< KisPaintDevice >
KoUpdater
Definition
KoUpdater.h:36
KisConvolutionBorderOp
KisConvolutionBorderOp
Definition
kis_convolution_painter.h:17
BORDER_REPEAT
@ BORDER_REPEAT
Definition
kis_convolution_painter.h:19
BORDER_IGNORE
@ BORDER_IGNORE
Definition
kis_convolution_painter.h:18
kis_image.h
kis_painter.h
kis_types.h
libs
image
kis_convolution_painter.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52