|
Krita Source Code Documentation
|
#include <kis_painter_based_stroke_strategy.h>
Inheritance diagram for KisPainterBasedStrokeStrategy:Classes | |
| struct | FakeUndoData |
Private Member Functions | |
| void | deletePainters () |
| void | init () |
| void | initPainters (KisPaintDeviceSP targetDevice, KisPaintDeviceSP maskingDevice, KisSelectionSP selection, bool hasIndirectPainting, const QString &indirectPaintingCompositeOp) |
| int | timedID (const QString &id) |
Private Attributes | |
| KisSelectionSP | m_activeSelection |
| QScopedPointer< KUndo2Command > | m_autokeyCommand |
| QScopedPointer< FakeUndoData > | m_fakeUndoData |
| KisIndirectPaintingSupport::FinalMergeSuspenderSP | m_finalMergeSuspender |
| QVector< KisMaskedFreehandStrokePainter * > | m_maskedPainters |
| QScopedPointer< KisMaskingBrushRenderer > | m_maskingBrushRenderer |
| QVector< KisFreehandStrokeInfo * > | m_maskStrokeInfos |
| KisResourcesSnapshotSP | m_resources |
| QVector< KisFreehandStrokeInfo * > | m_strokeInfos |
| bool | m_supportsContinuedInterstrokeData {false} |
| bool | m_supportsIndirectPainting {false} |
| bool | m_supportsMaskingBrush {false} |
| KisPaintDeviceSP | m_targetDevice |
| QScopedPointer< KisTransaction > | m_transaction |
| bool | m_useMergeID {false} |
Additional Inherited Members | |
Public Types inherited from KisSimpleStrokeStrategy | |
| enum | JobType { JOB_INIT = 0 , JOB_CANCEL , JOB_FINISH , JOB_DOSTROKE , JOB_SUSPEND , JOB_RESUME , NJOBS } |
Static Public Member Functions inherited from KisSimpleStrokeStrategy | |
| static QLatin1String | jobTypeToString (JobType type) |
Definition at line 26 of file kis_painter_based_stroke_strategy.h.
| KisPainterBasedStrokeStrategy::KisPainterBasedStrokeStrategy | ( | const QLatin1String & | id, |
| const KUndo2MagicString & | name, | ||
| KisResourcesSnapshotSP | resources, | ||
| QVector< KisFreehandStrokeInfo * > | strokeInfos ) |
Definition at line 41 of file kis_painter_based_stroke_strategy.cpp.
References init().
| KisPainterBasedStrokeStrategy::KisPainterBasedStrokeStrategy | ( | const QLatin1String & | id, |
| const KUndo2MagicString & | name, | ||
| KisResourcesSnapshotSP | resources, | ||
| KisFreehandStrokeInfo * | strokeInfo ) |
Definition at line 56 of file kis_painter_based_stroke_strategy.cpp.
References init().
| KisPainterBasedStrokeStrategy::~KisPainterBasedStrokeStrategy | ( | ) |
Definition at line 71 of file kis_painter_based_stroke_strategy.cpp.
|
protected |
Definition at line 85 of file kis_painter_based_stroke_strategy.cpp.
References KIS_ASSERT_RECOVER_NOOP, m_activeSelection, m_maskStrokeInfos, m_strokeInfos, m_targetDevice, and m_transaction.
|
protected |
Definition at line 110 of file kis_painter_based_stroke_strategy.cpp.
References m_activeSelection.
|
overridevirtual |
Reimplemented from KisSimpleStrokeStrategy.
Definition at line 471 of file kis_painter_based_stroke_strategy.cpp.
References KisResourcesSnapshot::currentNode(), KisSharedPtr< T >::data(), deletePainters(), m_autokeyCommand, m_resources, m_transaction, KisPaintDevice::region(), KisNode::setDirty(), KisIndirectPaintingSupport::setTemporaryTarget(), and KisIndirectPaintingSupport::temporaryTarget.
|
private |
Definition at line 229 of file kis_painter_based_stroke_strategy.cpp.
References m_maskedPainters, m_maskStrokeInfos, and m_strokeInfos.
|
protected |
Create a list of update jobs that should be run before issuing the setDirty() call on the node
Definition at line 130 of file kis_painter_based_stroke_strategy.cpp.
References KritaUtils::addJobConcurrent(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and m_maskingBrushRenderer.
|
overridevirtual |
When the transaction is reset to zero, cancel job does nothing. Therefore, we should ensure that the merging jobs are never cancelled.
Reimplemented from KisSimpleStrokeStrategy.
Definition at line 389 of file kis_painter_based_stroke_strategy.cpp.
References KisCommandUtils::CompositeCommand::addCommand(), KisPostExecutionUndoAdapter::addCommand(), KritaUtils::addJobBarrier(), KisRunnableStrokeJobsInterface::addRunnableJobs(), KisResourcesSnapshot::currentNode(), KisSharedPtr< T >::data(), deletePainters(), KisIndirectPaintingSupport::hasTemporaryTarget(), m_autokeyCommand, m_fakeUndoData, m_resources, m_transaction, m_useMergeID, KisIndirectPaintingSupport::mergeToLayerThreaded(), KisStrokeStrategy::name(), KisResourcesSnapshot::postExecutionUndoAdapter(), KisRunnableBasedStrokeStrategy::runnableJobsInterface(), KisStrokeJobData::setCancellable(), and timedID().
|
private |
Definition at line 75 of file kis_painter_based_stroke_strategy.cpp.
References KisSimpleStrokeStrategy::enableJob(), KisStrokeJobData::EXCLUSIVE, KisSimpleStrokeStrategy::JOB_CANCEL, KisSimpleStrokeStrategy::JOB_FINISH, KisSimpleStrokeStrategy::JOB_INIT, KisSimpleStrokeStrategy::JOB_RESUME, KisSimpleStrokeStrategy::JOB_SUSPEND, and KisStrokeJobData::SEQUENTIAL.
|
private |
Definition at line 186 of file kis_painter_based_stroke_strategy.cpp.
References KisPainter::begin(), KIS_SAFE_ASSERT_RECOVER_NOOP, m_maskedPainters, m_maskStrokeInfos, m_resources, m_strokeInfos, KisFreehandStrokeInfo::painter, KisRunnableBasedStrokeStrategy::runnableJobsInterface(), KisPainter::setChannelFlags(), KisPainter::setCompositeOpId(), KisPainter::setOpacityToUnit(), KisPainter::setRunnableStrokeJobsInterface(), KisResourcesSnapshot::setupMaskingBrushPainter(), KisResourcesSnapshot::setupPainter(), and targetDevice().
|
overridevirtual |
Reimplemented from KisSimpleStrokeStrategy.
Definition at line 250 of file kis_painter_based_stroke_strategy.cpp.
References KisResourcesSnapshot::activeSelection(), KritaUtils::addJobSequential(), KisRunnableStrokeJobsInterface::addRunnableJobs(), KisAutoKey::AllowBlankMode, KisResourcesSnapshot::channelLockFlags(), KisResourcesSnapshot::compositeOpId(), KisPaintDevice::createCompositionSourceDevice(), KisResourcesSnapshot::currentFgColor(), KisResourcesSnapshot::currentNode(), KisResourcesSnapshot::currentPaintOpPreset(), KisSharedPtr< T >::data(), KisResourcesSnapshot::indirectPaintingCompositeOp(), initPainters(), KisPaintOpRegistry::instance(), KIS_ASSERT_RECOVER_RETURN, KIS_SAFE_ASSERT_RECOVER, KIS_SAFE_ASSERT_RECOVER_NOOP, m_activeSelection, m_autokeyCommand, m_maskingBrushRenderer, m_resources, m_strokeInfos, m_targetDevice, m_transaction, KisResourcesSnapshot::needsIndirectPainting(), KisResourcesSnapshot::needsMaskingBrushRendering(), KisResourcesSnapshot::opacity(), KisBaseNode::paintDevice(), KisRunnableBasedStrokeStrategy::runnableJobsInterface(), KisIndirectPaintingSupport::setCurrentColor(), KisPaintDevice::setParentNode(), KisIndirectPaintingSupport::setTemporaryChannelFlags(), KisIndirectPaintingSupport::setTemporaryCompositeOp(), KisIndirectPaintingSupport::setTemporaryOpacity(), KisIndirectPaintingSupport::setTemporarySelection(), KisIndirectPaintingSupport::setTemporaryTarget(), supportsContinuedInterstrokeData(), supportsIndirectPainting(), KisAutoKey::SupportsLod, supportsMaskingBrush(), targetDevice(), KisIndirectPaintingSupport::temporarySelection(), and KisAutoKey::tryAutoCreateDuplicatedFrame().
|
protected |
Definition at line 115 of file kis_painter_based_stroke_strategy.cpp.
References m_maskedPainters.
|
protected |
Return true if the descendant should execute a few more jobs before issuing setDirty() call on the layer.
If the returned value is true, then the stroke actually paints not on the layer's paint device, but on some intermediate device owned by KisPainterBasedStrokeStrategy and one should merge it first before asking the update.
The value can be true only when the stroke is declared to support masked brush!
Definition at line 125 of file kis_painter_based_stroke_strategy.cpp.
References m_maskingBrushRenderer.
|
protected |
Definition at line 120 of file kis_painter_based_stroke_strategy.cpp.
References m_maskedPainters.
|
overridevirtual |
Reimplemented from KisSimpleStrokeStrategy.
Definition at line 516 of file kis_painter_based_stroke_strategy.cpp.
References KisResourcesSnapshot::channelLockFlags(), KisResourcesSnapshot::compositeOpId(), KisResourcesSnapshot::currentNode(), KisSharedPtr< T >::data(), m_activeSelection, m_finalMergeSuspender, m_resources, m_targetDevice, KisResourcesSnapshot::opacity(), KisBaseNode::paintDevice(), KisIndirectPaintingSupport::setTemporaryChannelFlags(), KisIndirectPaintingSupport::setTemporaryCompositeOp(), KisIndirectPaintingSupport::setTemporaryOpacity(), KisIndirectPaintingSupport::setTemporarySelection(), and KisIndirectPaintingSupport::setTemporaryTarget().
|
protected |
Definition at line 171 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsContinuedInterstrokeData, and value().
|
protected |
Definition at line 156 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsIndirectPainting, and value().
|
protected |
The descendants may declare if this stroke should support auto-creation of the masked brush. Default value: false
Definition at line 146 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsMaskingBrush, and value().
|
protected |
Definition at line 181 of file kis_painter_based_stroke_strategy.cpp.
References m_useMergeID, and value().
|
protected |
|
protected |
Definition at line 166 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsContinuedInterstrokeData.
|
protected |
Definition at line 161 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsIndirectPainting.
|
protected |
Return if the stroke should auto-create a masked brush from the provided paintop preset or not
Definition at line 151 of file kis_painter_based_stroke_strategy.cpp.
References m_supportsMaskingBrush.
|
protected |
Definition at line 176 of file kis_painter_based_stroke_strategy.cpp.
References m_useMergeID.
|
overridevirtual |
Reimplemented from KisSimpleStrokeStrategy.
Definition at line 504 of file kis_painter_based_stroke_strategy.cpp.
References KisResourcesSnapshot::currentNode(), KisSharedPtr< T >::data(), KisIndirectPaintingSupport::hasTemporaryTarget(), m_finalMergeSuspender, m_resources, KisIndirectPaintingSupport::setTemporaryTarget(), and KisIndirectPaintingSupport::trySuspendFinalMerge().
|
protected |
Definition at line 105 of file kis_painter_based_stroke_strategy.cpp.
References m_targetDevice.
|
protected |
Definition at line 539 of file kis_painter_based_stroke_strategy.cpp.
References KisResourcesSnapshot::currentNode(), and m_resources.
|
inlineprivate |
|
private |
Definition at line 128 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 130 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 146 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 138 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 121 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 125 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 120 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 118 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 119 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 136 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 135 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 134 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 127 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 123 of file kis_painter_based_stroke_strategy.h.
|
private |
Definition at line 132 of file kis_painter_based_stroke_strategy.h.