|
Krita Source Code Documentation
|
#include <kis_full_refresh_walker.h>
Inheritance diagram for KisFullRefreshWalker:Public Types | |
| enum | Flag |
Public Types inherited from KisRefreshSubtreeWalker | |
| enum | Flag { None = 0x0 , SkipNonRenderableNodes = 0x1 , NoFilthyMode = 0x2 , DontAdjustChangeRect = 0x4 , ClonesDontInvalidateFrames = 0x8 } |
Public Types inherited from KisBaseRectsWalker | |
| typedef QVector< CloneNotification > | CloneNotificationsVector |
| typedef QStack< JobItem > | LeafStack |
| typedef qint32 | NodePosition |
| enum | NodePositionValues { N_NORMAL = 0x00 , N_TOPMOST = 0x01 , N_BOTTOMMOST = 0x02 , N_EXTRA = 0x04 , N_ABOVE_FILTHY = 0x08 , N_FILTHY_ORIGINAL = 0x10 , N_FILTHY_PROJECTION = 0x20 , N_FILTHY = 0x40 , N_BELOW_FILTHY = 0x80 } |
| enum | SubtreeVisitFlag { None = 0x0 , SkipNonRenderableNodes = 0x1 , NoFilthyMode = 0x2 , DontNotifyClones = 0x4 } |
| enum | UpdateType { UPDATE , UPDATE_NO_FILTHY , FULL_REFRESH , FULL_REFRESH_NO_FILTHY , UNSUPPORTED } |
Public Types inherited from KisMergeWalker | |
| enum | Flag { DEFAULT = 0 , NO_FILTHY = 0x1 , CLONES_DONT_INVALIDATE_FRAMES = 0x2 } |
Private Attributes | |
| UpdateType | m_currentUpdateType { UPDATE } |
| bool | m_firstRun { true } |
Additional Inherited Members | |
Static Public Member Functions inherited from KisBaseRectsWalker | |
| static KisNode::PositionToFilthy | convertPositionToFilthy (NodePosition position) |
Protected Member Functions inherited from KisRefreshSubtreeWalker | |
| KisRefreshSubtreeWalker () | |
| void | startTrip (KisProjectionLeafSP startWith) override |
Protected Member Functions inherited from KisBaseRectsWalker | |
| void | addCloneSourceRegenerationJobs () |
| void | clear () |
| QRect | cropThisRect (const QRect &rect, const QRect &cropRect) |
| bool | isStartLeaf (KisProjectionLeafSP leaf) const |
| void | pushJob (KisProjectionLeafSP leaf, NodePosition position, QRect applyRect, KisRenderPassFlags flags) |
| void | registerCloneNotification (KisNodeSP node, NodePosition position) |
| void | registerNeedRect (KisProjectionLeafSP leaf, NodePosition position, KisRenderPassFlags flags) |
| void | setExplicitChangeRect (const QRect &changeRect, bool changeRectVaries) |
| void | visitSubtreeTopToBottom (KisProjectionLeafSP startWith, SubtreeVisitFlags flags, KisRenderPassFlags renderFlags, const QRect &cropRect) |
Protected Member Functions inherited from KisShared | |
| KisShared () | |
| ~KisShared () | |
Protected Member Functions inherited from KisMergeWalker | |
| KisMergeWalker () | |
| KisMergeWalker (Flags flags) | |
| void | startTrip (KisProjectionLeafSP startWith) override |
| virtual void | startTrip (KisProjectionLeafSP startWith)=0 |
| void | startTripWithMask (KisProjectionLeafSP filthyMask, KisMergeWalker::Flags flags) |
Static Protected Member Functions inherited from KisRefreshSubtreeWalker | |
| static std::pair< QRect, bool > | calculateChangeRect (KisProjectionLeafSP startWith, const QRect &requestedRect) |
Static Protected Member Functions inherited from KisBaseRectsWalker | |
| static qint32 | calculateChecksum (KisProjectionLeafSP leaf, const QRect &requestedRect) |
| static NodePosition | calculateNodePosition (KisProjectionLeafSP leaf) |
| static qint32 | getGraphPosition (qint32 position) |
| static bool | hasClones (KisNodeSP node) |
Definition at line 14 of file kis_full_refresh_walker.h.
Definition at line 17 of file kis_refresh_subtree_walker.h.
|
inline |
Definition at line 21 of file kis_full_refresh_walker.h.
|
inlineoverridevirtual |
Reimplemented from KisBaseRectsWalker.
Definition at line 94 of file kis_full_refresh_walker.h.
References KisBaseRectsWalker::adjustMasksChangeRect(), KisBaseRectsWalker::FULL_REFRESH, and m_currentUpdateType.
|
inlineoverridevirtual |
Called for every node we meet on a forward way of the trip.
Merge walker thinks that we changed the original of the dirty node (dirtyNode == startNode()), but that is not true in case of full refresh walker, because all the children of the dirty node are dirty as well, that is why we shouldn't rely on usual registerChangeRect() mechanism for this node. That is why we just unite the changeRects of all its children here.
Reimplemented from KisBaseRectsWalker.
Definition at line 59 of file kis_full_refresh_walker.h.
References KisRefreshSubtreeWalker::calculateChangeRect(), KisBaseRectsWalker::changeRect(), KisBaseRectsWalker::changeRectVaries(), KisBaseRectsWalker::FULL_REFRESH, KisBaseRectsWalker::isStartLeaf(), m_currentUpdateType, KisBaseRectsWalker::registerChangeRect(), KisBaseRectsWalker::requestedRect(), and KisBaseRectsWalker::setExplicitChangeRect().
|
inlineoverridevirtual |
Called for every node we meet on a backward way of the trip.
Reimplemented from KisBaseRectsWalker.
Definition at line 86 of file kis_full_refresh_walker.h.
References KisBaseRectsWalker::cropRect(), KisBaseRectsWalker::FULL_REFRESH, m_currentUpdateType, and KisBaseRectsWalker::registerNeedRect().
|
inlineoverridevirtual |
Initiates collecting of rects. Should be implemented in derived classes
Implements KisBaseRectsWalker.
Definition at line 32 of file kis_full_refresh_walker.h.
References KisBaseRectsWalker::FULL_REFRESH, KIS_SAFE_ASSERT_RECOVER_NOOP, m_currentUpdateType, m_firstRun, KisMergeWalker::startTrip(), KisRefreshSubtreeWalker::startTrip(), and KisBaseRectsWalker::UPDATE.
|
inlineoverridevirtual |
Implements KisBaseRectsWalker.
Definition at line 27 of file kis_full_refresh_walker.h.
References KisRefreshSubtreeWalker::flags(), KisBaseRectsWalker::FULL_REFRESH, KisBaseRectsWalker::FULL_REFRESH_NO_FILTHY, and KisRefreshSubtreeWalker::NoFilthyMode.
|
private |
Definition at line 104 of file kis_full_refresh_walker.h.
|
private |
Definition at line 105 of file kis_full_refresh_walker.h.