|
Krita Source Code Documentation
|
#include <kis_unsharp_filter.h>
Inheritance diagram for KisUnsharpFilter:Public Member Functions | |
| QRect | changedRect (const QRect &rect, const KisFilterConfigurationSP _config, int lod) const override |
| KisConfigWidget * | createConfigurationWidget (QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override |
| KisFilterConfigurationSP | defaultConfiguration (KisResourcesInterfaceSP resourcesInterface) const override |
| KisUnsharpFilter () | |
| QRect | neededRect (const QRect &rect, const KisFilterConfigurationSP _config, int lod) const override |
| void | processImpl (KisPaintDeviceSP device, const QRect &applyRect, const KisFilterConfigurationSP config, KoUpdater *progressUpdater) const override |
Public Member Functions inherited from KisFilter | |
| virtual bool | configurationAllowedForMask (KisFilterConfigurationSP config) const |
| virtual void | fixLoadedFilterConfigurationForMasks (KisFilterConfigurationSP config) const |
| KisFilter (const KoID &id, const KoID &category, const QString &entry) | |
| virtual bool | needsTransparentPixels (const KisFilterConfigurationSP config, const KoColorSpace *cs) const |
| void | process (const KisPaintDeviceSP src, KisPaintDeviceSP dst, KisSelectionSP selection, const QRect &applyRect, const KisFilterConfigurationSP config, KoUpdater *progressUpdater=0) const |
| void | process (KisPaintDeviceSP device, const QRect &applyRect, const KisFilterConfigurationSP config, KoUpdater *progressUpdater=0) const |
| virtual bool | supportsLevelOfDetail (const KisFilterConfigurationSP config, int lod) const |
| ~KisFilter () override | |
Public Member Functions inherited from KisBaseProcessor | |
| KisBookmarkedConfigurationManager * | bookmarkManager () |
| const KisBookmarkedConfigurationManager * | bookmarkManager () const |
| ColorSpaceIndependence | colorSpaceIndependence () const |
| virtual KisFilterConfigurationSP | factoryConfiguration (KisResourcesInterfaceSP resourcesInterface) const |
| QString | id () const |
| KisBaseProcessor (const KoID &id, const KoID &category, const QString &entry) | |
| KoID | menuCategory () const |
| QString | menuEntry () const |
| QString | name () const |
| Private () | |
| QKeySequence | shortcut () const |
| bool | showConfigurationWidget () |
| If true, the filter wants to show a configuration widget. | |
| bool | supportsAdjustmentLayers () const |
| This filter can be used in adjustment layers. | |
| bool | supportsPainting () const |
| bool | supportsThreading () const |
| virtual | ~KisBaseProcessor () |
Public Member Functions inherited from Private | |
| Private (KisCanvas2 *c) | |
Public Member Functions inherited from KisShared | |
| bool | deref () |
| bool | ref () |
| int | refCount () |
| QAtomicInt * | sharedWeakReference () |
Static Public Member Functions | |
| static KoID | id () |
Private Member Functions | |
| void | processLightnessOnly (KisPaintDeviceSP device, const QRect &rect, quint8 threshold, qreal weights[2], qreal factor, const QBitArray &channelFlags, KoUpdater *progressUpdater) const |
| void | processRaw (KisPaintDeviceSP device, const QRect &rect, quint8 threshold, qreal weights[2], qreal factor, const QBitArray &channelFlags, KoUpdater *progressUpdater) const |
Definition at line 14 of file kis_unsharp_filter.h.
| KisUnsharpFilter::KisUnsharpFilter | ( | ) |
Officially Unsharp Mask doesn't support LoD, because it generates subtle artifacts when the unsharp radius is smaller than current zoom level. But LoD devices can still appear when the filter is used in Adjustment Layer. So the actual LoD is still counted on.
Definition at line 31 of file kis_unsharp_filter.cpp.
References FULLY_INDEPENDENT, KisBaseProcessor::setColorSpaceIndependence(), KisBaseProcessor::setSupportsAdjustmentLayers(), KisFilter::setSupportsLevelOfDetail(), KisBaseProcessor::setSupportsPainting(), and KisBaseProcessor::setSupportsThreading().
|
overridevirtual |
Similar to neededRect : some filters will alter a lot of pixels that are near to each other at the same time. So when you changed a single rectangle in a device, the actual rectangle that will feel the influence of this change might be bigger. Use this function to determine that rect.
Reimplemented from KisFilter.
Definition at line 208 of file kis_unsharp_filter.cpp.
References KisLodTransformScalar::scale(), and value().
|
overridevirtual |
Create the configuration widget for this processor.
| parent | the Qt owner widget of this widget |
| dev | the paintdevice this filter will act on |
| useForMasks | shown if the filer is going to be used in a mask. Some filters may provide limited options when applied as a mask (e.g. Gaussian Blur) |
Reimplemented from KisBaseProcessor.
Definition at line 48 of file kis_unsharp_filter.cpp.
|
overridevirtual |
Return the configuration set as the default by the user or the default configuration from the filter writer as returned by factoryConfiguration.
This configuration is used by default for the configuration widget and given to the process function if there is no configuration widget.
Reimplemented from KisBaseProcessor.
Definition at line 53 of file kis_unsharp_filter.cpp.
References KisBaseProcessor::factoryConfiguration().
|
inlinestatic |
Definition at line 26 of file kis_unsharp_filter.h.
|
overridevirtual |
Some filters need pixels outside the current processing rect to compute the new value (for instance, convolution filters)
Reimplemented from KisFilter.
Definition at line 198 of file kis_unsharp_filter.cpp.
References KisLodTransformScalar::scale(), and value().
|
overridevirtual |
Override this function with the implementation of your filter.
This is a low level function that expects all the conditions for the
| device | be met. Use usual process() methods instead. |
| device | the paint device to filter |
| applyRect | the rectangle where the filter is applied |
| config | the parameters of the filter |
| progressUpdater | to pass on the progress the filter is making |
Implements KisFilter.
Definition at line 63 of file kis_unsharp_filter.cpp.
References KisGaussianKernel::applyGaussian(), KIS_SAFE_ASSERT_RECOVER_RETURN, processLightnessOnly(), processRaw(), KisLodTransformScalar::scale(), and value().
|
private |
Definition at line 154 of file kis_unsharp_filter.cpp.
References CLAMP, KisPaintDevice::colorSpace(), KoColorSpace::differenceA(), KoColorSpace::fromLabA16(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixel(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::oldRawData(), KoColorSpace::pixelSize(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawData(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawDataConst(), and KoColorSpace::toLabA16().
|
private |
Definition at line 112 of file kis_unsharp_filter.cpp.
References KisPaintDevice::colorSpace(), KoColorSpace::convolutionOp, KoConvolutionOp::convolveColors(), KoColorSpace::difference(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixel(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::oldRawData(), KoColorSpace::pixelSize(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawData(), and KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawDataConst().