Fix scaled text rendering with the raster paint engine & FreeType
Before commit070d9c00c4
, the raster paint engine used to call loadGlyphs() on the FT engine, which ensures that the glyphs are loaded and (more importantly) that the correct transformation matrix is applied on the freetype face. After commit070d9c0
lockedAlphaMapForGlyph is called for each glyph, which unfortunately doesn't respect the provided transformation matrix. Therefore when drawing scaled text, it was never actually scaled. This patch applies the combination of the fontengine transform and the requested transform on the freetype face actually used, similarly to loadGlyphs. Change-Id: I0956a9e71784582db6bb90475a001a63800773f4 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
This commit is contained in:
parent
44e3eff29d
commit
fa607d6272
@ -1823,6 +1823,13 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe
|
||||
gset = 0;
|
||||
}
|
||||
|
||||
if (gset) {
|
||||
FT_Matrix m = matrix;
|
||||
FT_Matrix_Multiply(&gset->transformationMatrix, &m);
|
||||
FT_Set_Transform(freetype->face, &m, 0);
|
||||
freetype->matrix = m;
|
||||
}
|
||||
|
||||
if (!gset || gset->outline_drawing || !loadGlyph(gset, glyphIndex, subPixelPosition,
|
||||
neededFormat)) {
|
||||
unlockFace();
|
||||
|
Loading…
Reference in New Issue
Block a user