diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-02-14 10:39:30 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-09-17 14:48:48 +0200 |
commit | d84a6eab5129ba29951a7ba6d82820b21cc9872e (patch) | |
tree | 1d794ecd3f37363a286f3eeda8e571c36ec4006c /src/gui/text/qfontengine_ft.cpp | |
parent | bce19cb9063003af5924c643f6fc1416146b4242 (diff) |
Add Grayscale8 and Alpha8 formats to QImage and drawing
Extend the QImage format with two 8-bit grayscale and alpha formats.
These formats have the advantage over Indexed8 that they have simpler
conversion and can be rendered to by the raster engine.
[ChangeLog][QtGui][QImage] Added support grayscale and alpha 8-bit
formats which can also be rendered to.
Change-Id: I4343c80a92a3dda196aa38d0c3ea251b094fc274
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/gui/text/qfontengine_ft.cpp')
-rw-r--r-- | src/gui/text/qfontengine_ft.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp index 0a22038bb4..0e08c6557b 100644 --- a/src/gui/text/qfontengine_ft.cpp +++ b/src/gui/text/qfontengine_ft.cpp @@ -1858,7 +1858,7 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe format = QImage::Format_Mono; break; case Format_A8: - format = QImage::Format_Indexed8; + format = QImage::Format_Alpha8; break; case Format_A32: format = QImage::Format_ARGB32; @@ -1968,13 +1968,8 @@ QImage QFontEngineFT::alphaMapForGlyph(glyph_t g, QFixed subPixelPosition) const int pitch = antialias ? (glyph->width + 3) & ~3 : ((glyph->width + 31)/32) * 4; - QImage img(glyph->width, glyph->height, antialias ? QImage::Format_Indexed8 : QImage::Format_Mono); - if (antialias) { - QVector<QRgb> colors(256); - for (int i=0; i<256; ++i) - colors[i] = qRgba(0, 0, 0, i); - img.setColorTable(colors); - } else { + QImage img(glyph->width, glyph->height, antialias ? QImage::Format_Alpha8 : QImage::Format_Mono); + if (!antialias) { QVector<QRgb> colors(2); colors[0] = qRgba(0, 0, 0, 0); colors[1] = qRgba(0, 0, 0, 255); |