|
Krita Source Code Documentation
|
#include <kis_ls_drop_shadow_filter.h>
Inheritance diagram for KisLsDropShadowFilter:Public Types | |
| enum | Mode { DropShadow , InnerShadow , OuterGlow , InnerGlow } |
Public Member Functions | |
| QRect | changedRect (const QRect &rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override |
| KisLayerStyleFilter * | clone () const override |
| KisLsDropShadowFilter (Mode mode=DropShadow) | |
| QRect | neededRect (const QRect &rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override |
| void | processDirectly (KisPaintDeviceSP src, KisMultipleProjection *dst, KisLayerStyleKnockoutBlower *blower, const QRect &applyRect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override |
Public Member Functions inherited from KisLayerStyleFilter | |
| QString | id () const |
| KisLayerStyleFilter (const KoID &id) | |
| virtual | ~KisLayerStyleFilter () |
Public Member Functions inherited from Private | |
| Private (KisCanvas2 *c) | |
Public Member Functions inherited from KisShared | |
| bool | deref () |
| bool | ref () |
| int | refCount () |
| QAtomicInt * | sharedWeakReference () |
Private Member Functions | |
| void | applyDropShadow (KisPaintDeviceSP srcDevice, KisMultipleProjection *dst, const QRect &applyRect, const psd_layer_effects_context *context, const psd_layer_effects_shadow_base *shadow, KisResourcesInterfaceSP resourcesInterface, KisLayerStyleFilterEnvironment *env) const |
| const psd_layer_effects_shadow_base * | getShadowStruct (KisPSDLayerStyleSP style) const |
| KisLsDropShadowFilter (const KisLsDropShadowFilter &rhs) | |
Private Attributes | |
| const Mode | m_mode |
Additional Inherited Members | |
Public Attributes inherited from KisLayerStyleFilter | |
| KoID | id |
Public Attributes inherited from Private | |
| KisCanvas2 * | canvas |
| int | displayedFrame |
| int | intendedFrame |
Protected Member Functions inherited from KisLayerStyleFilter | |
| KisLayerStyleFilter (const KisLayerStyleFilter &rhs) | |
Protected Member Functions inherited from KisShared | |
| KisShared () | |
| ~KisShared () | |
Definition at line 17 of file kis_ls_drop_shadow_filter.h.
| Enumerator | |
|---|---|
| DropShadow | |
| InnerShadow | |
| OuterGlow | |
| InnerGlow | |
Definition at line 21 of file kis_ls_drop_shadow_filter.h.
| KisLsDropShadowFilter::KisLsDropShadowFilter | ( | Mode | mode = DropShadow | ) |
Definition at line 35 of file kis_ls_drop_shadow_filter.cpp.
|
private |
Definition at line 41 of file kis_ls_drop_shadow_filter.cpp.
|
private |
Copy selection which will be erased from the original later
Spread and blur the selection
Contour correction
Noise
Knock-out original outline of the device from the resulting shade
Definition at line 110 of file kis_ls_drop_shadow_filter.cpp.
References KisLsUtils::adjustRange(), psd_layer_effects_shadow_base::antiAliased(), KisLsUtils::applyContourCorrection(), KisLsUtils::applyFinalSelection(), KisLsUtils::applyGaussianWithTransaction(), KisLsUtils::applyNoise(), KisPainter::bitBlt(), KisLayerStyleFilterEnvironment::cachedSelection(), COMPOSITE_ERASE, psd_layer_effects_shadow_base::contourLookupTable(), KisMultipleProjection::defaultProjectionId(), psd_layer_effects_shadow_base::edgeHidden(), KisLsUtils::findEdge(), KisLsUtils::FULL_PERCENT_RANGE, KisPixelSelection::invert(), psd_layer_effects_shadow_base::invertsSelection(), KIS_ASSERT_RECOVER_RETURN, psd_layer_effects_shadow_base::knocksOut(), KisPixelSelection::moveTo(), ShadowRectsData::NEED_RECT, psd_layer_effects_shadow_base::noise(), KisPaintDevice::offset(), KisSelection::pixelSelection, psd_glow_center, psd_technique_precise, psd_layer_effects_shadow_base::range(), s1, s2, KisPixelSelection::selectedRect(), KisLsUtils::selectionFromAlphaChannel(), KisPainter::setCompositeOpId(), psd_layer_effects_inner_glow::source(), and psd_layer_effects_shadow_base::technique().
|
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.
Implements KisLayerStyleFilter.
Definition at line 279 of file kis_ls_drop_shadow_filter.cpp.
References ShadowRectsData::CHANGE_RECT, KisLayerStyleFilterEnvironment::currentLevelOfDetail(), psd_layer_effects_shadow_base::effectEnabled(), and getShadowStruct().
|
overridevirtual |
Implements KisLayerStyleFilter.
Definition at line 47 of file kis_ls_drop_shadow_filter.cpp.
References KisLsDropShadowFilter().
|
private |
Definition at line 235 of file kis_ls_drop_shadow_filter.cpp.
References InnerShadow, m_mode, and OuterGlow.
|
overridevirtual |
Some filters need pixels outside the current processing rect to compute the new value (for instance, convolution filters)
Implements KisLayerStyleFilter.
Definition at line 269 of file kis_ls_drop_shadow_filter.cpp.
References KisLayerStyleFilterEnvironment::currentLevelOfDetail(), psd_layer_effects_shadow_base::effectEnabled(), getShadowStruct(), and ShadowRectsData::NEED_RECT.
|
overridevirtual |
Implements KisLayerStyleFilter.
Definition at line 252 of file kis_ls_drop_shadow_filter.cpp.
References applyDropShadow(), KisLsUtils::checkEffectEnabled(), KisLayerStyleFilterEnvironment::currentLevelOfDetail(), getShadowStruct(), and KIS_ASSERT_RECOVER_RETURN.
|
private |
Definition at line 54 of file kis_ls_drop_shadow_filter.h.