summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraavit <qt-info@nokia.com>2011-04-01 13:18:33 (GMT)
committeraavit <qt-info@nokia.com>2011-04-01 13:18:33 (GMT)
commitab1a46a128e938303f41727e24d5681669ff9680 (patch)
tree05b1e207e8ae3bdbeb7f40dbb9a131555c0016a6
parent248d2c47d6166b7384db40ae0f352de67acd0a86 (diff)
parentbf03b38d2b32a0cfca181398597884e4252466f4 (diff)
downloadQt-ab1a46a128e938303f41727e24d5681669ff9680.zip
Qt-ab1a46a128e938303f41727e24d5681669ff9680.tar.gz
Qt-ab1a46a128e938303f41727e24d5681669ff9680.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-team
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp7
-rw-r--r--src/gui/painting/qpainter.cpp3
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp2
-rw-r--r--src/gui/text/qfontengine_ft.cpp2
4 files changed, 6 insertions, 8 deletions
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 9f3b9b9..6902543 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -3191,15 +3191,10 @@ bool QRasterPaintEngine::drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs,
rightShift = 3; // divide by 8
int margin = cache->glyphMargin();
-
- bool supportsSubPixelPositions = fontEngine->supportsSubPixelPositions();
-
const uchar *bits = image.bits();
for (int i=0; i<numGlyphs; ++i) {
- QFixed subPixelPosition;
- if (supportsSubPixelPositions)
- subPixelPosition = cache->subPixelPositionForX(positions[i].x);
+ QFixed subPixelPosition = cache->subPixelPositionForX(positions[i].x);
QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphs[i], subPixelPosition);
const QTextureGlyphCache::Coord &c = cache->coords[glyph];
if (c.isNull())
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 64ef549..50d65e6 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -6468,7 +6468,8 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const
const qreal underlineOffset = fe->underlinePosition().toReal();
// deliberately ceil the offset to avoid the underline coming too close to
// the text above it.
- const qreal underlinePos = pos.y() + qCeil(underlineOffset);
+ const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
+ const qreal underlinePos = pos.y() + qCeil(underlineOffset) - aliasedCoordinateDelta;
if (underlineStyle == QTextCharFormat::SpellCheckUnderline) {
underlineStyle = QTextCharFormat::UnderlineStyle(QApplication::style()->styleHint(QStyle::SH_SpellCheckUnderlineStyle));
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp
index f0db805..727852d 100644
--- a/src/gui/painting/qtextureglyphcache.cpp
+++ b/src/gui/painting/qtextureglyphcache.cpp
@@ -102,7 +102,7 @@ int QTextureGlyphCache::calculateSubPixelPositionCount(glyph_t glyph) const
QFixed QTextureGlyphCache::subPixelPositionForX(QFixed x) const
{
- if (m_subPixelPositionCount == 0)
+ if (m_subPixelPositionCount <= 1)
return QFixed();
QFixed subPixelPosition;
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index db0156a..08eb6bb 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -1430,6 +1430,8 @@ QFontEngineFT::QGlyphSet *QFontEngineFT::loadTransformedGlyphSet(const QTransfor
QFixed QFontEngineFT::subPixelPositionForX(QFixed x)
{
int m_subPixelPositionCount = 4;
+ if (!supportsSubPixelPositions())
+ return 0;
QFixed subPixelPosition;
if (x != 0) {