Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDabCacheUtils Namespace Reference

Classes

struct  DabGenerationInfo
 
struct  DabRenderingResources
 
struct  DabRequestInfo
 

Typedefs

typedef std::function< DabRenderingResources *()> ResourcesFactory
 

Functions

QRect correctDabRectWhenFetchedFromCache (const QRect &dabRect, const QSize &realDabSize)
 
void generateDab (const DabGenerationInfo &di, DabRenderingResources *resources, KisFixedPaintDeviceSP *dab, bool forceNormalizedRGBAImageStamp)
 
void postProcessDab (KisFixedPaintDeviceSP dab, const QPoint &dabTopLeft, const KisPaintInformation &info, DabRenderingResources *resources)
 

Typedef Documentation

◆ ResourcesFactory

Definition at line 53 of file KisDabCacheUtils.h.

Function Documentation

◆ correctDabRectWhenFetchedFromCache()

PAINTOP_EXPORT QRect KisDabCacheUtils::correctDabRectWhenFetchedFromCache ( const QRect & dabRect,
const QSize & realDabSize )

Definition at line 35 of file KisDabCacheUtils.cpp.

37{
38 int diffX = (realDabSize.width() - dabRect.width()) / 2;
39 int diffY = (realDabSize.height() - dabRect.height()) / 2;
40
41 return QRect(dabRect.x() - diffX, dabRect.y() - diffY,
42 realDabSize.width() , realDabSize.height());
43}

◆ generateDab()

PAINTOP_EXPORT void KisDabCacheUtils::generateDab ( const DabGenerationInfo & di,
DabRenderingResources * resources,
KisFixedPaintDeviceSP * dab,
bool forceNormalizedRGBAImageStamp )

Definition at line 45 of file KisDabCacheUtils.cpp.

46{
48 const KoColorSpace *cs = (*dab)->colorSpace();
49
50
51 if (forceNormalizedRGBAImageStamp || resources->brush->brushApplication() == IMAGESTAMP) {
52 *dab = resources->brush->paintDevice(cs, di.shape, di.info,
53 di.subPixel.x(),
54 di.subPixel.y());
55
56 } else if (di.solidColorFill) {
57 resources->brush->mask(*dab,
58 di.paintColor,
59 di.shape,
60 di.info,
61 di.subPixel.x(), di.subPixel.y(),
64 }
65 else {
66 if (!resources->colorSourceDevice ||
67 *cs != *resources->colorSourceDevice->colorSpace()) {
68
69 resources->colorSourceDevice = new KisPaintDevice(cs);
70 }
71 else {
72 resources->colorSourceDevice->clear();
73 }
74
75 QRect maskRect(QPoint(), di.dstDabRect.size());
76 resources->colorSource->colorize(resources->colorSourceDevice, maskRect, di.info.pos().toPoint());
77 resources->colorSourceDevice->convertTo(cs);
78
79 resources->brush->mask(*dab, resources->colorSourceDevice,
80 di.shape,
81 di.info,
82 di.subPixel.x(), di.subPixel.y(),
85 }
86
87 if (!di.mirrorProperties.isEmpty()) {
88 (*dab)->mirror(di.mirrorProperties.horizontalMirror,
90 }
91}
virtual void clear()
const KoColorSpace * colorSpace() const
void convertTo(const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent=KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::ConversionFlags conversionFlags=KoColorConversionTransformation::internalConversionFlags(), KUndo2Command *parentCommand=nullptr, KoUpdater *progressUpdater=nullptr)
const QPointF & pos() const
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128
@ IMAGESTAMP
Definition kis_brush.h:40
QScopedPointer< KisColorSource > colorSource

References KisDabCacheUtils::DabRenderingResources::brush, KisPaintDevice::clear(), KisDabCacheUtils::DabRenderingResources::colorSource, KisDabCacheUtils::DabRenderingResources::colorSourceDevice, KisPaintDevice::colorSpace(), KisPaintDevice::convertTo(), KisDabCacheUtils::DabGenerationInfo::dstDabRect, MirrorProperties::horizontalMirror, IMAGESTAMP, KisDabCacheUtils::DabGenerationInfo::info, MirrorProperties::isEmpty(), KIS_SAFE_ASSERT_RECOVER_RETURN, KisDabCacheUtils::DabGenerationInfo::lightnessStrength, KisDabCacheUtils::DabGenerationInfo::mirrorProperties, KisDabCacheUtils::DabGenerationInfo::paintColor, KisPaintInformation::pos(), KisDabCacheUtils::DabGenerationInfo::shape, KisDabCacheUtils::DabGenerationInfo::softnessFactor, KisDabCacheUtils::DabGenerationInfo::solidColorFill, KisDabCacheUtils::DabGenerationInfo::subPixel, and MirrorProperties::verticalMirror.

◆ postProcessDab()

PAINTOP_EXPORT void KisDabCacheUtils::postProcessDab ( KisFixedPaintDeviceSP dab,
const QPoint & dabTopLeft,
const KisPaintInformation & info,
DabRenderingResources * resources )

Definition at line 93 of file KisDabCacheUtils.cpp.

97{
98 if (resources->sharpnessOption) {
99 resources->sharpnessOption->applyThreshold(dab, info);
100 }
101
102 if (resources->textureOption) {
103 resources->textureOption->apply(dab, dabTopLeft, info);
104 }
105}
QScopedPointer< KisSharpnessOption > sharpnessOption
QScopedPointer< KisTextureOption > textureOption

References KisDabCacheUtils::DabRenderingResources::sharpnessOption, and KisDabCacheUtils::DabRenderingResources::textureOption.