|
Krita Source Code Documentation
|
#include <kis_refresh_subtree_walker.h>
Inheritance diagram for KisRefreshSubtreeWalker:Public Types | |
| 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 } |
Static Protected Member Functions | |
| 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) |
Private Attributes | |
| Flags | m_flags = None |
Additional Inherited Members | |
Static Public Member Functions inherited from KisBaseRectsWalker | |
| static KisNode::PositionToFilthy | convertPositionToFilthy (NodePosition position) |
Definition at line 14 of file kis_refresh_subtree_walker.h.
| Enumerator | |
|---|---|
| None | |
| SkipNonRenderableNodes | |
| NoFilthyMode | |
| DontAdjustChangeRect | |
| ClonesDontInvalidateFrames | |
Definition at line 17 of file kis_refresh_subtree_walker.h.
|
inline |
Definition at line 28 of file kis_refresh_subtree_walker.h.
References KisBaseRectsWalker::setClonesDontInvalidateFrames(), and KisBaseRectsWalker::setCropRect().
|
inlineoverride |
Definition at line 39 of file kis_refresh_subtree_walker.h.
|
inlineprotected |
Definition at line 48 of file kis_refresh_subtree_walker.h.
|
inlinestaticprotected |
Definition at line 53 of file kis_refresh_subtree_walker.h.
References KisBaseRectsWalker::requestedRect().
|
inline |
Definition at line 43 of file kis_refresh_subtree_walker.h.
| KisRefreshSubtreeWalker::Q_DECLARE_FLAGS | ( | Flags | , |
| Flag | ) |
|
inlineoverrideprotectedvirtual |
Initiates collecting of rects. Should be implemented in derived classes
When the mask is the root of the update, update its parent projection using N_EXTRA method.
This special update is necessary because the following wolker will work in N_ABOVE_FILTHY mode only
Sometimes it may happen that the mask is placed outside layers hierarchy (e.g. inactive selection mask), then the projection leafs will not point to anywhere
In normal walkers we register notifications in the change-rect pass to avoid regeneration of the nodes that are below filthy. In the subtree walker there is no change-rect pass and all the nodes are considered as filthy, so we should do that explicitly.
Implements KisBaseRectsWalker.
Definition at line 86 of file kis_refresh_subtree_walker.h.
References KisBaseRectsWalker::calculateNodePosition(), KisBaseRectsWalker::cropRect(), KisBaseRectsWalker::isStartLeaf(), KisBaseRectsWalker::NoFilthyMode, KisBaseRectsWalker::None, None, KisBaseRectsWalker::registerCloneNotification(), KisBaseRectsWalker::registerNeedRect(), KisBaseRectsWalker::requestedRect(), KisBaseRectsWalker::setExplicitChangeRect(), KisBaseRectsWalker::SkipNonRenderableNodes, and KisBaseRectsWalker::visitSubtreeTopToBottom().
|
inlineoverridevirtual |
Implements KisBaseRectsWalker.
Definition at line 35 of file kis_refresh_subtree_walker.h.
References KisBaseRectsWalker::UNSUPPORTED.
|
private |
Definition at line 139 of file kis_refresh_subtree_walker.h.