Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_node_filter_interface.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net>
3 * SPDX-FileCopyrightText: 2012 Dmitry Kazakov <dimula73@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
9
10#include "filter/kis_filter.h"
15
16#ifdef SANITY_CHECK_FILTER_CONFIGURATION_OWNER
17
18#define SANITY_ACQUIRE_FILTER(filter) \
19 do { \
20 if ((filter)) { \
21 (filter)->sanityRefUsageCounter(); \
22 } \
23 } while (0)
24
25#define SANITY_RELEASE_FILTER(filter) \
26 do { \
27 if (m_filterConfiguration && m_filterConfiguration->sanityDerefUsageCounter()) { \
28 warnKrita; \
29 warnKrita << "WARNING: filter configuration has more than one user! Krita will probably crash soon!"; \
30 warnKrita << "WARNING:" << ppVar(this); \
31 warnKrita << "WARNING:" << ppVar(filter.data()); \
32 warnKrita; \
33 } \
34 } while (0)
35
36#else /* SANITY_CHECK_FILTER_CONFIGURATION_OWNER */
37
38#define SANITY_ACQUIRE_FILTER(filter)
39#define SANITY_RELEASE_FILTER(filter)
40
41#endif /* SANITY_CHECK_FILTER_CONFIGURATION_OWNER*/
42
44 : m_filterConfiguration(filterConfig)
45{
47 KIS_SAFE_ASSERT_RECOVER_NOOP(!filterConfig || filterConfig->hasLocalResourcesSnapshot());
48}
49
51 : m_filterConfiguration(rhs.m_filterConfiguration->clone())
52
53{
55}
56
61
66
67void KisNodeFilterInterface::setFilter(KisFilterConfigurationSP filterConfig, bool /*checkCompareConfig*/)
68{
70
72 KIS_SAFE_ASSERT_RECOVER_NOOP(filterConfig->hasLocalResourcesSnapshot());
73 m_filterConfiguration = filterConfig;
74
76}
77
KisNodeFilterInterface(KisFilterConfigurationSP filterConfig)
virtual KisFilterConfigurationSP filter() const
KisFilterConfigurationSP m_filterConfiguration
virtual void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130
#define SANITY_ACQUIRE_FILTER(filter)
#define SANITY_RELEASE_FILTER(filter)