summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qtransform.cpp
diff options
context:
space:
mode:
authorJani Hautakangas <ext-jani.hautakangas@nokia.com>2010-05-20 10:04:34 (GMT)
committerJani Hautakangas <ext-jani.hautakangas@nokia.com>2010-05-20 10:04:34 (GMT)
commit6fb92f77f6d6b5b685b8748a1a35ffbd7df8b76b (patch)
treeba9ec7bc61be5ae87bd93fa055c6fb628b3d8404 /src/gui/painting/qtransform.cpp
parent98972c1b271de1292b4e46484fe689d62a8b8e62 (diff)
parente6557220bccbdbbc218dc9eab0eb426ba774435e (diff)
downloadQt-6fb92f77f6d6b5b685b8748a1a35ffbd7df8b76b.zip
Qt-6fb92f77f6d6b5b685b8748a1a35ffbd7df8b76b.tar.gz
Qt-6fb92f77f6d6b5b685b8748a1a35ffbd7df8b76b.tar.bz2
Merge branch '4.7' of scm.dev.troll.no:qt/qt-s60-public into 4.7
Diffstat (limited to 'src/gui/painting/qtransform.cpp')
-rw-r--r--src/gui/painting/qtransform.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gui/painting/qtransform.cpp b/src/gui/painting/qtransform.cpp
index 80b7520..aaa241f 100644
--- a/src/gui/painting/qtransform.cpp
+++ b/src/gui/painting/qtransform.cpp
@@ -1545,12 +1545,19 @@ static inline bool lineTo_clipped(QPainterPath &path, const QTransform &transfor
return true;
}
+Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale);
static inline bool cubicTo_clipped(QPainterPath &path, const QTransform &transform, const QPointF &a, const QPointF &b, const QPointF &c, const QPointF &d, bool needsMoveTo)
{
// Convert projective xformed curves to line
// segments so they can be transformed more accurately
- QPolygonF segment = QBezier::fromPoints(a, b, c, d).toPolygon();
+
+ qreal scale;
+ qt_scaleForTransform(transform, &scale);
+
+ qreal curveThreshold = scale == 0 ? qreal(0.25) : (qreal(0.25) / scale);
+
+ QPolygonF segment = QBezier::fromPoints(a, b, c, d).toPolygon(curveThreshold);
for (int i = 0; i < segment.size() - 1; ++i)
if (lineTo_clipped(path, transform, segment.at(i), segment.at(i+1), needsMoveTo))