summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-09-30 20:22:39 +0200
committerQt Continuous Integration System <qt-info@nokia.com>2010-09-30 20:22:39 +0200
commit6d20831a82a6a19ea841720e339f5f86623a9dc2 (patch)
tree4f089f08f2d1ece4196ef0ac545263995f918f78 /src/gui/painting
parent74d391adfd907d80ae35abe25fe346b2b4d649f9 (diff)
parent30769c79fa18cd14fe1cdb7d0eca95a5daca77a0 (diff)
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) Stabilize tst_QGraphicsWidget::QT_BUG_13865_doublePaintWhenAddingASubItem Fixed accessing freed memory in raster engine. Build fix for -qtnamespace. Fixed parsing of SVGs with absolute font sizes. Moving QPdf::stripSpecialCharacter to fontengine Revert "Fix (implement!) hfw/wfh in QGridLayoutEngine" Fixed a layout issue where you could get NaN as dimensions QTextCodec: Fix valgrind warning when using QTextCodec in destructions functions Fix double painting when adding an item into a linear layout Fixed antialiased rasterization bug in raster engine. Fixed potential crash when loading corrupt GIFs. Work around an ATI driver problem with mutli-sampled pbuffers. tst_qstatemachine.cpp: fix compilation with Sun Studio Fixed regression in clipping.qps autotest on 64-bit. Fixed crash when using Qt::WA_DeleteOnClose on a QPrintDialog on Mac. Fixed performance regression in curve stroking. Don't disable texture_from_pixmap on GLX/X11 by default. Avoid creating copy of an image in memory when storing as png Doc update for the support of MSVC 2010 64-bit fix documentation of drawText(int, int, int, int, ... ...
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qgrayraster.c4
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp2
-rw-r--r--src/gui/painting/qpaintengineex.cpp2
-rw-r--r--src/gui/painting/qpainter.cpp2
-rw-r--r--src/gui/painting/qpdf.cpp18
-rw-r--r--src/gui/painting/qpdf_p.h2
-rw-r--r--src/gui/painting/qrasterdefs_p.h2
-rw-r--r--src/gui/painting/qstroker.cpp9
-rw-r--r--src/gui/painting/qstroker_p.h3
9 files changed, 15 insertions, 29 deletions
diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c
index d0e25a9193..ec9ebeb71f 100644
--- a/src/gui/painting/qgrayraster.c
+++ b/src/gui/painting/qgrayraster.c
@@ -325,6 +325,7 @@
{
void* buffer;
long buffer_size;
+ long buffer_allocated_size;
int band_size;
void* memory;
PWorker worker;
@@ -1791,7 +1792,7 @@
// If raster object and raster buffer are allocated, but
// raster size isn't of the minimum size, indicate out of
// memory.
- if (raster && raster->buffer && raster->buffer_size < MINIMUM_POOL_SIZE )
+ if (raster->buffer_allocated_size < MINIMUM_POOL_SIZE )
return ErrRaster_OutOfMemory;
/* return immediately if the outline is empty */
@@ -1930,6 +1931,7 @@
rast->buffer_size = 0;
rast->worker = NULL;
}
+ rast->buffer_allocated_size = pool_size;
}
}
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 36e1082fd0..135ae001c2 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -4233,6 +4233,8 @@ void QRasterPaintEnginePrivate::rasterize(QT_FT_Outline *outline,
break;
}
+ rendered_spans += q_gray_rendered_spans(*grayRaster.data());
+
#if defined(Q_WS_WIN64)
_aligned_free(rasterPoolBase);
#else
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
index 1e857e4c91..c1e3d6615c 100644
--- a/src/gui/painting/qpaintengineex.cpp
+++ b/src/gui/painting/qpaintengineex.cpp
@@ -517,7 +517,7 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
QPainterPath painterPath = state()->matrix.map(path.convertToPainterPath());
d->activeStroker->strokePath(painterPath, d->strokeHandler, QTransform());
} else {
- d->activeStroker->setCurveThresholdFromTransform(state()->matrix);
+ d->activeStroker->setCurveThresholdFromTransform(QTransform());
d->activeStroker->begin(d->strokeHandler);
if (types) {
while (points < lastPoint) {
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 5fbe3ed7a8..7fed7e4423 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -6185,7 +6185,7 @@ void QPainter::drawText(const QRectF &r, int flags, const QString &str, QRectF *
By default, QPainter draws text anti-aliased.
- \note The y-position is used as the baseline of the font.
+ \note The y-position is used as the top of the font.
\sa Qt::AlignmentFlag, Qt::TextFlag
*/
diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp
index 6e02435a43..ba5d164c9d 100644
--- a/src/gui/painting/qpdf.cpp
+++ b/src/gui/painting/qpdf.cpp
@@ -916,24 +916,6 @@ const char *QPdf::paperSizeToString(QPrinter::PaperSize paperSize)
}
-QByteArray QPdf::stripSpecialCharacters(const QByteArray &string)
-{
- QByteArray s = string;
- s.replace(' ', "");
- s.replace('(', "");
- s.replace(')', "");
- s.replace('<', "");
- s.replace('>', "");
- s.replace('[', "");
- s.replace(']', "");
- s.replace('{', "");
- s.replace('}', "");
- s.replace('/', "");
- s.replace('%', "");
- return s;
-}
-
-
// -------------------------- base engine, shared code between PS and PDF -----------------------
QPdfBaseEngine::QPdfBaseEngine(QPdfBaseEnginePrivate &dd, PaintEngineFeatures f)
diff --git a/src/gui/painting/qpdf_p.h b/src/gui/painting/qpdf_p.h
index 9c4d05da49..5c5ceb4fac 100644
--- a/src/gui/painting/qpdf_p.h
+++ b/src/gui/painting/qpdf_p.h
@@ -156,8 +156,6 @@ namespace QPdf {
PaperSize paperSize(QPrinter::PaperSize paperSize);
const char *paperSizeToString(QPrinter::PaperSize paperSize);
-
- QByteArray stripSpecialCharacters(const QByteArray &string);
}
diff --git a/src/gui/painting/qrasterdefs_p.h b/src/gui/painting/qrasterdefs_p.h
index 4131e4b77d..f6339ed792 100644
--- a/src/gui/painting/qrasterdefs_p.h
+++ b/src/gui/painting/qrasterdefs_p.h
@@ -100,7 +100,7 @@ QT_FT_BEGIN_HEADER
/* distances in integer font units, or 16,16, or 26.6 fixed float */
/* pixel coordinates. */
/* */
- typedef signed long QT_FT_Pos;
+ typedef signed int QT_FT_Pos;
/*************************************************************************/
diff --git a/src/gui/painting/qstroker.cpp b/src/gui/painting/qstroker.cpp
index 9cff3390be..9decf4155b 100644
--- a/src/gui/painting/qstroker.cpp
+++ b/src/gui/painting/qstroker.cpp
@@ -190,6 +190,7 @@ static inline qreal adapted_angle_on_x(const QLineF &line)
QStrokerOps::QStrokerOps()
: m_elements(0)
, m_curveThreshold(qt_real_to_fixed(0.25))
+ , m_dashThreshold(qt_real_to_fixed(0.25))
, m_customData(0)
, m_moveTo(0)
, m_lineTo(0)
@@ -243,7 +244,7 @@ void QStrokerOps::strokePath(const QPainterPath &path, void *customData, const Q
if (path.isEmpty())
return;
- setCurveThresholdFromTransform(matrix);
+ setCurveThresholdFromTransform(QTransform());
begin(customData);
int count = path.elementCount();
if (matrix.isIdentity()) {
@@ -315,7 +316,7 @@ void QStrokerOps::strokePolygon(const QPointF *points, int pointCount, bool impl
if (!pointCount)
return;
- setCurveThresholdFromTransform(matrix);
+ setCurveThresholdFromTransform(QTransform());
begin(data);
if (matrix.isIdentity()) {
moveTo(qt_real_to_fixed(points[0].x()), qt_real_to_fixed(points[0].y()));
@@ -356,7 +357,7 @@ void QStrokerOps::strokeEllipse(const QRectF &rect, void *data, const QTransform
}
}
- setCurveThresholdFromTransform(matrix);
+ setCurveThresholdFromTransform(QTransform());
begin(data);
moveTo(qt_real_to_fixed(start.x()), qt_real_to_fixed(start.y()));
for (int i=0; i<12; i+=3) {
@@ -1142,7 +1143,7 @@ void QDashStroker::processCurrentSubpath()
QPainterPath dashPath;
- QSubpathFlatIterator it(&m_elements, m_curveThreshold);
+ QSubpathFlatIterator it(&m_elements, m_dashThreshold);
qfixed2d prev = it.next();
bool clipping = !m_clip_rect.isEmpty();
diff --git a/src/gui/painting/qstroker_p.h b/src/gui/painting/qstroker_p.h
index d646135af1..5607a8e6c9 100644
--- a/src/gui/painting/qstroker_p.h
+++ b/src/gui/painting/qstroker_p.h
@@ -168,7 +168,7 @@ public:
{
qreal scale;
qt_scaleForTransform(transform, &scale);
- setCurveThreshold(scale == 0 ? qreal(0.5) : (qreal(0.5) / scale));
+ m_dashThreshold = scale == 0 ? qreal(0.5) : (qreal(0.5) / scale);
}
void setCurveThreshold(qfixed threshold) { m_curveThreshold = threshold; }
@@ -184,6 +184,7 @@ protected:
QRectF m_clip_rect;
qfixed m_curveThreshold;
+ qfixed m_dashThreshold;
void *m_customData;
qStrokerMoveToHook m_moveTo;