diff options
author | Paul Olav Tvete <paul.tvete@nokia.com> | 2010-03-01 13:03:22 (GMT) |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@nokia.com> | 2010-03-01 13:17:53 (GMT) |
commit | 19095f432ef7ef424ea8dc89b19e43ed9f031b3e (patch) | |
tree | 159654fbd2066eaea6d6fe78efc9726b5959eb3d /src/gui/text/qfontengine.cpp | |
parent | 196e1484c22f6347061fa433987a86d90e178a55 (diff) | |
parent | 236c3ad7bacf165069b834b62fede6b147cfaf03 (diff) | |
download | Qt-19095f432ef7ef424ea8dc89b19e43ed9f031b3e.zip Qt-19095f432ef7ef424ea8dc89b19e43ed9f031b3e.tar.gz Qt-19095f432ef7ef424ea8dc89b19e43ed9f031b3e.tar.bz2 |
Merge remote branch 'qt/4.7' into lighthouse-4.7
Conflicts:
configure
src/gui/egl/qegl.cpp
src/gui/kernel/qdnd_p.h
Diffstat (limited to 'src/gui/text/qfontengine.cpp')
-rw-r--r-- | src/gui/text/qfontengine.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 0dd8f4b..4063749 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -587,8 +587,9 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &t) { QImage i = alphaMapForGlyph(glyph); if (t.type() > QTransform::TxTranslate) - i = i.transformed(t); + i = i.transformed(t).convertToFormat(QImage::Format_Indexed8); Q_ASSERT(i.depth() <= 8); // To verify that transformed didn't change the format... + return i; } @@ -597,11 +598,14 @@ QImage QFontEngine::alphaRGBMapForGlyph(glyph_t glyph, int /* margin */, const Q QImage alphaMask = alphaMapForGlyph(glyph, t); QImage rgbMask(alphaMask.width(), alphaMask.height(), QImage::Format_RGB32); + QVector<QRgb> colorTable = alphaMask.colorTable(); for (int y=0; y<alphaMask.height(); ++y) { uint *dst = (uint *) rgbMask.scanLine(y); uchar *src = (uchar *) alphaMask.scanLine(y); - for (int x=0; x<alphaMask.width(); ++x) - dst[x] = qRgb(src[x], src[x], src[x]); + for (int x=0; x<alphaMask.width(); ++x) { + int val = qAlpha(colorTable.at(src[x])); + dst[x] = qRgb(val, val, val); + } } return rgbMask; |