summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontengine.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-03-01 13:03:22 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-03-01 13:17:53 (GMT)
commit19095f432ef7ef424ea8dc89b19e43ed9f031b3e (patch)
tree159654fbd2066eaea6d6fe78efc9726b5959eb3d /src/gui/text/qfontengine.cpp
parent196e1484c22f6347061fa433987a86d90e178a55 (diff)
parent236c3ad7bacf165069b834b62fede6b147cfaf03 (diff)
downloadQt-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.cpp10
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;