121 const int pixelSize =
m_model->colorSpace()->pixelSize();
123 QRect pickRectHighDPI = QRect(QPoint(0, 0), size()*devicePixelRatioF());
130 const int x = it.
x();
131 const int y = it.
y();
136 const qreal aaFactor =
static_cast<qreal
>(values2[3]);
149 QPainter painter(
this);
151 renderedImage.setDevicePixelRatio(devicePixelRatioF());
153 painter.drawImage(0, 0, renderedImage);
164 bool needsBlending =
false;
166 const float v_factor = 0.6f;
167 const float s_factor = 0.6f;
168 const float v_factor2 = 0.013f;
169 const float s_factor2 = 0.013f;
171 const int stripe_width = (15 *
m_sizeHD)/255;
184 dxs = dx - stripe_width;
186 dxs = dx + stripe_width;
188 dys = dy - stripe_width;
190 dys = dy + stripe_width;
192 qreal r = std::sqrt(qreal(
sqr(dxs)+
sqr(dys)));
194 if (qMin(abs(dx), abs(dy)) < stripe_width) {
196 bool horizontal = std::abs(dx) > std::abs(dy);
203 s = - (dy*s_factor +
signedSqr(dy)*s_factor2);
213 else if (std::min(std::abs(dx - dy), std::abs(dx + dy)) < stripe_width) {
221 s = - (dy*s_factor +
signedSqr(dy)*s_factor2);
224 else if (r < s_radiusHD+1) {
228 h = 90*
sqr2(r/s_radiusHD);
230 h = 360 - 90*
sqr2(r/s_radiusHD);
231 s = 256*(atan2f(std::abs(dxs),dys)/
M_PI) - 128;
233 if (r > s_radiusHD) {
234 needsBlending =
true;
236 qreal aaFactor = r-floor(r);
237 aaFactor = 1-aaFactor;
244 fs = qBound(qreal(0.0), fs, qreal(1.0));
245 fv = qBound(qreal(0.01), fv, qreal(1.0));
246 blendValues = QVector4D(fh, fs, fv, aaFactor);
248 h = 180 + 180*atan2f(dys,-dxs)/
M_PI;
249 v = 255*(r-s_radiusHD)/(diag-s_radiusHD) - 128;
256 h = 180 + 180*atan2f(dys,-dxs)/
M_PI;
257 v = 255*(r-s_radiusHD)/(diag-s_radiusHD) - 128;
265 fs = qBound(qreal(0.0), fs, qreal(1.0));
266 fv = qBound(qreal(0.01), fv, qreal(1.0));
267 values = QVector4D(fh, fs, fv, 0);
269 return needsBlending;
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)