Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_qimage_pyramid.cpp File Reference
#include "kis_qimage_pyramid.h"
#include <limits>
#include <QPainter>
#include <kis_debug.h>

Go to the source code of this file.

Macros

#define MAX_MIPMAP_SCALE   8.0
 
#define MIPMAP_SIZE_THRESHOLD   512
 
#define QPAINTER_WORKAROUND_BORDER   1
 

Functions

QTransform baseBrushTransform (KisDabShape const &shape, qreal subPixelX, qreal subPixelY, const QRectF &baseBounds)
 
QRect roundRect (const QRectF &rc)
 

Macro Definition Documentation

◆ MAX_MIPMAP_SCALE

#define MAX_MIPMAP_SCALE   8.0

Definition at line 14 of file kis_qimage_pyramid.cpp.

◆ MIPMAP_SIZE_THRESHOLD

#define MIPMAP_SIZE_THRESHOLD   512

Definition at line 13 of file kis_qimage_pyramid.cpp.

◆ QPAINTER_WORKAROUND_BORDER

#define QPAINTER_WORKAROUND_BORDER   1

Definition at line 16 of file kis_qimage_pyramid.cpp.

Function Documentation

◆ baseBrushTransform()

QTransform baseBrushTransform ( KisDabShape const & shape,
qreal subPixelX,
qreal subPixelY,
const QRectF & baseBounds )

Definition at line 118 of file kis_qimage_pyramid.cpp.

121{
122 QTransform transform;
123 transform.scale(shape.scaleX(), shape.scaleY());
124
125 if (!qFuzzyCompare(shape.rotation(), 0) && !qIsNaN(shape.rotation())) {
126 transform = transform * QTransform().rotateRadians(shape.rotation());
127 QRectF rotatedBounds = transform.mapRect(baseBounds);
128 transform = transform * QTransform::fromTranslate(-rotatedBounds.x(), -rotatedBounds.y());
129 }
130
131 return transform * QTransform::fromTranslate(subPixelX, subPixelY);
132}
static bool qFuzzyCompare(half p1, half p2)

References qFuzzyCompare(), KisDabShape::rotation(), KisDabShape::scaleX(), and KisDabShape::scaleY().

◆ roundRect()

QRect roundRect ( const QRectF & rc)
inline

This is an analog of toAlignedRect() with the only difference that it ensures the rect position will never be below zero.

Warning: be very careful with using bottom()/right() values of a pure QRect (we don't use it here for the dangers it can lead to).

Definition at line 91 of file kis_qimage_pyramid.cpp.

92{
102 QRectF rect(rc);
103
104 KIS_SAFE_ASSERT_RECOVER_NOOP(rect.x() > -0.000001);
105 KIS_SAFE_ASSERT_RECOVER_NOOP(rect.y() > -0.000001);
106
107 if (rect.x() < 0.000001) {
108 rect.setLeft(0.0);
109 }
110
111 if (rect.y() < 0.000001) {
112 rect.setTop(0.0);
113 }
114
115 return rect.toAlignedRect();
116}
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130

References KIS_SAFE_ASSERT_RECOVER_NOOP.