Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData Class Reference

#include <kis_color_sampler_stroke_strategy.h>

+ Inheritance diagram for KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData:

Public Member Functions

QWeakPointer< boost::none_t > cookie ()
 
KisStrokeJobDatacreateLodClone (int levelOfDetail) override
 
 GenerateCanvasZoomPreviewData (KisPaintDeviceSP _canvasDev, const QRect &_canvasPixelRect, KisDisplayColorConverter *_colorConverter, QSize _outputSize=QSize(), QSharedPointer< boost::none_t > _cookie=nullptr)
 
void swapCookie (QSharedPointer< boost::none_t > &newCookie)
 
- Public Member Functions inherited from KisStrokeJobData
Exclusivity exclusivity ()
 
bool isBarrier () const
 
bool isCancellable () const
 
bool isExclusive () const
 
bool isSequential () const
 
 KisStrokeJobData (Sequentiality sequentiality=SEQUENTIAL, Exclusivity exclusivity=NORMAL)
 
int levelOfDetailOverride () const
 
Sequentiality sequentiality ()
 
void setCancellable (bool value)
 
void setLevelOfDetailOverride (int value)
 
virtual ~KisStrokeJobData ()
 

Public Attributes

KisPaintDeviceSP canvasDev
 
QRect canvasPixelRect
 
KisDisplayColorConvertercolorConverter
 
QSize outputSize
 
QSharedPointer< boost::none_t > strokeCookie
 

Additional Inherited Members

- Public Types inherited from KisStrokeJobData
enum  Exclusivity { NORMAL , EXCLUSIVE }
 
enum  Sequentiality { CONCURRENT , SEQUENTIAL , BARRIER , UNIQUELY_CONCURRENT }
 
- Protected Member Functions inherited from KisStrokeJobData
 KisStrokeJobData (const KisStrokeJobData &rhs)
 

Detailed Description

Definition at line 50 of file kis_color_sampler_stroke_strategy.h.

Constructor & Destructor Documentation

◆ GenerateCanvasZoomPreviewData()

KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::GenerateCanvasZoomPreviewData ( KisPaintDeviceSP _canvasDev,
const QRect & _canvasPixelRect,
KisDisplayColorConverter * _colorConverter,
QSize _outputSize = QSize(),
QSharedPointer< boost::none_t > _cookie = nullptr )
inline

Member Function Documentation

◆ cookie()

QWeakPointer< boost::none_t > KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::cookie ( )
inline

Definition at line 83 of file kis_color_sampler_stroke_strategy.h.

83 {
84 strokeCookie.reset(new boost::none_t(boost::none));
85 return strokeCookie;
86 }

References strokeCookie.

◆ createLodClone()

KisStrokeJobData * KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::createLodClone ( int levelOfDetail)
inlineoverridevirtual

Reimplemented from KisStrokeJobData.

Definition at line 58 of file kis_color_sampler_stroke_strategy.h.

58 {
59 KisLodTransform transform(levelOfDetail);
60 QRect lodPixelRect = transform.map(canvasPixelRect);
61
62 // The LOD pixel rect size should be odd so that the pixel sampled is in the center
63 // Otherwise, even after scaling back, it will be wrong
64 if (lodPixelRect.width() % 2 == 0) {
65 int oddSize = lodPixelRect.width() - 1;
66 if (oddSize < 3) oddSize = 3;
67 lodPixelRect.setSize(QSize(oddSize, oddSize));
68 }
69 lodPixelRect.moveCenter(transform.map(canvasPixelRect.center()));
70
71 // When instant preview mode is on, canvas is scaled down. Therefore, sample the canvas with the scaled LOD rect
72 // But the data returned needs to be the original requested size
75
76 // When Lod is involved, swap the cookie to the new Lod clone to track execution
77 // The original object seems to leaks
78 newData->swapCookie(strokeCookie);
79
80 return newData;
81 }
GenerateCanvasZoomPreviewData(KisPaintDeviceSP _canvasDev, const QRect &_canvasPixelRect, KisDisplayColorConverter *_colorConverter, QSize _outputSize=QSize(), QSharedPointer< boost::none_t > _cookie=nullptr)

References canvasDev, canvasPixelRect, colorConverter, GenerateCanvasZoomPreviewData(), KisLodTransform::map(), strokeCookie, and swapCookie().

◆ swapCookie()

void KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::swapCookie ( QSharedPointer< boost::none_t > & newCookie)
inline

Definition at line 88 of file kis_color_sampler_stroke_strategy.h.

88 {
89 strokeCookie.swap(newCookie);
90 }

References strokeCookie.

Member Data Documentation

◆ canvasDev

KisPaintDeviceSP KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::canvasDev

Definition at line 92 of file kis_color_sampler_stroke_strategy.h.

◆ canvasPixelRect

QRect KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::canvasPixelRect

Definition at line 93 of file kis_color_sampler_stroke_strategy.h.

◆ colorConverter

KisDisplayColorConverter* KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::colorConverter

Definition at line 94 of file kis_color_sampler_stroke_strategy.h.

◆ outputSize

QSize KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::outputSize

Definition at line 95 of file kis_color_sampler_stroke_strategy.h.

◆ strokeCookie

QSharedPointer<boost::none_t> KisColorSamplerStrokeStrategy::GenerateCanvasZoomPreviewData::strokeCookie

Definition at line 96 of file kis_color_sampler_stroke_strategy.h.


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