This reverts commit 318a991907
and its follow-up commit beede51bca.
This fix was incorrect and caused regressions elsewhere (QTBUG-84357)
The issue in QTBUG-71928 (offsets on emojis) turned out to be much
simpler: The emojis are expected to be drawn without any margin,
but since we retrieved the margin for A32 there would be a mismatch
between the margin used for positioning and the actual margin in the
returned QImage from the font engine.
Passing the correct margin in bitmapForGlyph() fixes this.
But reverting these fixes reintroduces a clipping bug when using
software rendering in Qt Quick: QTBUG-80180. This needs to be addressed
in Qt Quick. It also exposes an existing issue with positioning in
Qt Quick NativeRendering: QTBUG-84454.
In addition, it caused an assert when running with ClearType disabled,
which turned out to be because we were using the A32 margin in the
A8 case in the DirectWrite engine. This was also the cause of
QTBUG-50024 before, which is now also fixed.
However, it also needs to work with Qt Quick, where the text is currently
offset by margin * dpr and glyphs are clipped with the software renderer,
possibly because of the offset in position.
Task-number: QTBUG-71928
Task-number: QTBUG-84042
Task-number: QTBUG-80180
Task-number: QTBUG-84454
Fixes: QTBUG-84357
Fixes: QTBUG-50024
Pick-to: 5.15
Change-Id: I2c8f9f9e7dfb34d492e9833a02fa0c93e6a19513
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>