Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_ls_satin_filter.cpp File Reference

Go to the source code of this file.

Classes

struct  SatinRectsData
 

Functions

void blendAndOffsetSatinSelection (KisPixelSelectionSP dstSelection, KisPixelSelectionSP srcSelection, const bool invert, const QPoint &offset, const QRect &applyRect)
 

Function Documentation

◆ blendAndOffsetSatinSelection()

void blendAndOffsetSatinSelection ( KisPixelSelectionSP dstSelection,
KisPixelSelectionSP srcSelection,
const bool invert,
const QPoint & offset,
const QRect & applyRect )

Definition at line 96 of file kis_ls_satin_filter.cpp.

101{
102 KisSequentialIterator srcIt1(srcSelection, applyRect.translated(offset));
103 KisSequentialIterator srcIt2(srcSelection, applyRect.translated(-offset));
104 KisSequentialIterator dstIt(dstSelection, applyRect);
105
106 while(dstIt.nextPixel() && srcIt1.nextPixel() && srcIt2.nextPixel()) {
107
108 quint8 *dstPixelPtr = dstIt.rawData();
109 quint8 *src1PixelPtr = srcIt1.rawData();
110 quint8 *src2PixelPtr = srcIt2.rawData();
111
112 if (!invert) {
113 *dstPixelPtr = qAbs(*src1PixelPtr - *src2PixelPtr);
114 } else {
115 *dstPixelPtr = (255 - qAbs(*src1PixelPtr - *src2PixelPtr));
116 }
117 }
118}

References KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixel(), and KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::rawData().