Changeset View
Changeset View
Standalone View
Standalone View
libs/image/kis_painter.cc
Show First 20 Lines • Show All 393 Lines • ▼ Show 20 Line(s) | |||||
394 | void KisPainter::addDirtyRect(const QRect & rc) | 394 | void KisPainter::addDirtyRect(const QRect & rc) | ||
395 | { | 395 | { | ||
396 | QRect r = rc.normalized(); | 396 | QRect r = rc.normalized(); | ||
397 | if (r.isValid()) { | 397 | if (r.isValid()) { | ||
398 | d->dirtyRects.append(rc); | 398 | d->dirtyRects.append(rc); | ||
399 | } | 399 | } | ||
400 | } | 400 | } | ||
401 | 401 | | |||
402 | void KisPainter::addDirtyRects(const QVector<QRect> &rects) | ||||
403 | { | ||||
404 | d->dirtyRects.reserve(d->dirtyRects.size() + rects.size()); | ||||
405 | | ||||
406 | Q_FOREACH (const QRect &rc, rects) { | ||||
407 | const QRect r = rc.normalized(); | ||||
408 | if (r.isValid()) { | ||||
409 | d->dirtyRects.append(rc); | ||||
410 | } | ||||
411 | } | ||||
412 | } | ||||
413 | | ||||
402 | inline bool KisPainter::Private::tryReduceSourceRect(const KisPaintDevice *srcDev, | 414 | inline bool KisPainter::Private::tryReduceSourceRect(const KisPaintDevice *srcDev, | ||
403 | QRect *srcRect, | 415 | QRect *srcRect, | ||
404 | qint32 *srcX, | 416 | qint32 *srcX, | ||
405 | qint32 *srcY, | 417 | qint32 *srcY, | ||
406 | qint32 *srcWidth, | 418 | qint32 *srcWidth, | ||
407 | qint32 *srcHeight, | 419 | qint32 *srcHeight, | ||
408 | qint32 *dstX, | 420 | qint32 *dstX, | ||
409 | qint32 *dstY) | 421 | qint32 *dstY) | ||
▲ Show 20 Lines • Show All 2225 Lines • ▼ Show 20 Line(s) | |||||
2635 | 2647 | | |||
2636 | void KisPainter::setMirrorInformation(const QPointF& axesCenter, bool mirrorHorizontally, bool mirrorVertically) | 2648 | void KisPainter::setMirrorInformation(const QPointF& axesCenter, bool mirrorHorizontally, bool mirrorVertically) | ||
2637 | { | 2649 | { | ||
2638 | d->axesCenter = axesCenter; | 2650 | d->axesCenter = axesCenter; | ||
2639 | d->mirrorHorizontally = mirrorHorizontally; | 2651 | d->mirrorHorizontally = mirrorHorizontally; | ||
2640 | d->mirrorVertically = mirrorVertically; | 2652 | d->mirrorVertically = mirrorVertically; | ||
2641 | } | 2653 | } | ||
2642 | 2654 | | |||
2655 | void KisPainter::copyMirrorInformationFrom(const KisPainter *other) | ||||
2656 | { | ||||
2657 | d->axesCenter = other->d->axesCenter; | ||||
2658 | d->mirrorHorizontally = other->d->mirrorHorizontally; | ||||
2659 | d->mirrorVertically = other->d->mirrorVertically; | ||||
2660 | } | ||||
2661 | | ||||
2643 | bool KisPainter::hasMirroring() const | 2662 | bool KisPainter::hasMirroring() const | ||
2644 | { | 2663 | { | ||
2645 | return d->mirrorHorizontally || d->mirrorVertically; | 2664 | return d->mirrorHorizontally || d->mirrorVertically; | ||
2646 | } | 2665 | } | ||
2647 | 2666 | | |||
2648 | bool KisPainter::hasHorizontalMirroring() const | 2667 | bool KisPainter::hasHorizontalMirroring() const | ||
2649 | { | 2668 | { | ||
2650 | return d->mirrorHorizontally; | 2669 | return d->mirrorHorizontally; | ||
▲ Show 20 Lines • Show All 252 Lines • ▼ Show 20 Line(s) | |||||
2903 | 2922 | | |||
2904 | void KisPainter::mirrorDab(Qt::Orientation direction, KisRenderedDab *dab) const | 2923 | void KisPainter::mirrorDab(Qt::Orientation direction, KisRenderedDab *dab) const | ||
2905 | { | 2924 | { | ||
2906 | KisLodTransform t(d->device); | 2925 | KisLodTransform t(d->device); | ||
2907 | QPoint effectiveAxesCenter = t.map(d->axesCenter).toPoint(); | 2926 | QPoint effectiveAxesCenter = t.map(d->axesCenter).toPoint(); | ||
2908 | 2927 | | |||
2909 | KritaUtils::mirrorDab(direction, effectiveAxesCenter, dab); | 2928 | KritaUtils::mirrorDab(direction, effectiveAxesCenter, dab); | ||
2910 | } | 2929 | } | ||
2930 | | ||||
2931 | const QVector<QRect> KisPainter::calculateAllMirroredRects(const QRect &rc) | ||||
2932 | { | ||||
2933 | QVector<QRect> rects; | ||||
2934 | | ||||
2935 | KisLodTransform t(d->device); | ||||
2936 | QPoint effectiveAxesCenter = t.map(d->axesCenter).toPoint(); | ||||
2937 | | ||||
2938 | QRect baseRect = rc; | ||||
2939 | rects << baseRect; | ||||
2940 | | ||||
2941 | if (d->mirrorHorizontally && d->mirrorVertically){ | ||||
2942 | KritaUtils::mirrorRect(Qt::Horizontal, effectiveAxesCenter, &baseRect); | ||||
2943 | rects << baseRect; | ||||
2944 | KritaUtils::mirrorRect(Qt::Vertical, effectiveAxesCenter, &baseRect); | ||||
2945 | rects << baseRect; | ||||
2946 | KritaUtils::mirrorRect(Qt::Horizontal, effectiveAxesCenter, &baseRect); | ||||
2947 | rects << baseRect; | ||||
2948 | } else if (d->mirrorHorizontally) { | ||||
2949 | KritaUtils::mirrorRect(Qt::Horizontal, effectiveAxesCenter, &baseRect); | ||||
2950 | rects << baseRect; | ||||
2951 | } else if (d->mirrorVertically) { | ||||
2952 | KritaUtils::mirrorRect(Qt::Vertical, effectiveAxesCenter, &baseRect); | ||||
2953 | rects << baseRect; | ||||
2954 | } | ||||
2955 | | ||||
2956 | return rects; | ||||
2957 | } |