Krita Source Code Documentation
Loading...
Searching...
No Matches
KisNodeFilterInterface Class Reference

#include <kis_node_filter_interface.h>

+ Inheritance diagram for KisNodeFilterInterface:

Public Member Functions

virtual KisFilterConfigurationSP filter () const
 
 KisNodeFilterInterface (const KisNodeFilterInterface &rhs)
 
 KisNodeFilterInterface (KisFilterConfigurationSP filterConfig)
 
virtual void notifyColorSpaceChanged ()
 
virtual void setFilter (KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
 
virtual ~KisNodeFilterInterface ()
 

Private Member Functions

KisNodeFilterInterfaceoperator= (const KisNodeFilterInterface &other)
 

Private Attributes

KisFilterConfigurationSP m_filterConfiguration
 

Detailed Description

Define an interface for nodes that are associated with a filter.

Definition at line 16 of file kis_node_filter_interface.h.

Constructor & Destructor Documentation

◆ KisNodeFilterInterface() [1/2]

KisNodeFilterInterface::KisNodeFilterInterface ( KisFilterConfigurationSP filterConfig)

Definition at line 43 of file kis_node_filter_interface.cpp.

44 : m_filterConfiguration(filterConfig)
45{
47 KIS_SAFE_ASSERT_RECOVER_NOOP(!filterConfig || filterConfig->hasLocalResourcesSnapshot());
48}
KisFilterConfigurationSP m_filterConfiguration
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130
#define SANITY_ACQUIRE_FILTER(filter)

References KIS_SAFE_ASSERT_RECOVER_NOOP, m_filterConfiguration, and SANITY_ACQUIRE_FILTER.

◆ KisNodeFilterInterface() [2/2]

KisNodeFilterInterface::KisNodeFilterInterface ( const KisNodeFilterInterface & rhs)

◆ ~KisNodeFilterInterface()

KisNodeFilterInterface::~KisNodeFilterInterface ( )
virtual

Definition at line 57 of file kis_node_filter_interface.cpp.

58{
60}
#define SANITY_RELEASE_FILTER(filter)

References m_filterConfiguration, and SANITY_RELEASE_FILTER.

Member Function Documentation

◆ filter()

KisFilterConfigurationSP KisNodeFilterInterface::filter ( ) const
virtual
Returns
safe shared pointer to the filter configuration associated with this node

Definition at line 62 of file kis_node_filter_interface.cpp.

63{
65}

References m_filterConfiguration.

◆ notifyColorSpaceChanged()

void KisNodeFilterInterface::notifyColorSpaceChanged ( )
virtual

On a color space change we need to reset all the caches stored inside filter configuration. The current "standard" way for doing that is just to clone the configuration (which clones everything except of the caches). We should probably invent a better approach for that cache resetting later.

Definition at line 78 of file kis_node_filter_interface.cpp.

79{
91 }
92}

References m_filterConfiguration.

◆ operator=()

KisNodeFilterInterface & KisNodeFilterInterface::operator= ( const KisNodeFilterInterface & other)
private

◆ setFilter()

void KisNodeFilterInterface::setFilter ( KisFilterConfigurationSP filterConfig,
bool checkCompareConfig = true )
virtual

Sets the filter configuration for this node. The filter might differ from the filter that is currently set up on this node.

WARNING: the filterConfig becomes owned by the node right after you've set it. Don't try to access the configuration after you've associated it with the node.

Parameters
filterConfigthe new configuration object
checkCompareConfigif true, the update code will check whether the config is the same as the old config, and if so, do nothing. If false, the filter node will be updated always.

Reimplemented in KisGeneratorLayer, KisAdjustmentLayer, and KisFilterMask.

Definition at line 67 of file kis_node_filter_interface.cpp.

68{
70
72 KIS_SAFE_ASSERT_RECOVER_NOOP(filterConfig->hasLocalResourcesSnapshot());
73 m_filterConfiguration = filterConfig;
74
76}
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KIS_SAFE_ASSERT_RECOVER_NOOP, KIS_SAFE_ASSERT_RECOVER_RETURN, m_filterConfiguration, SANITY_ACQUIRE_FILTER, and SANITY_RELEASE_FILTER.

Member Data Documentation

◆ m_filterConfiguration

KisFilterConfigurationSP KisNodeFilterInterface::m_filterConfiguration
private

Definition at line 50 of file kis_node_filter_interface.h.


The documentation for this class was generated from the following files: