vcl/qt5/Qt5Graphics_Text.cxx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-)
New commits: commit 21ebde9189460318c8c04157b48ede9760a600f9 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Fri Sep 11 16:48:04 2020 +0200 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Fri Sep 11 19:27:19 2020 +0200 tdf#125234 Qt use glyph widths, not advance We're working on the font level here, not the layouting. So use LO's TTF functions to read the glyph widths of the font directly. Change-Id: Ib3bd59a91aa08ca9e629a45ba7539d757bef2c1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102488 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> diff --git a/vcl/qt5/Qt5Graphics_Text.cxx b/vcl/qt5/Qt5Graphics_Text.cxx index 8ee299debfd0..a42d35ae6391 100644 --- a/vcl/qt5/Qt5Graphics_Text.cxx +++ b/vcl/qt5/Qt5Graphics_Text.cxx @@ -240,7 +240,6 @@ bool Qt5Graphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFa sal_uInt16 aShortIDs[nGlyphCount + 1]; sal_uInt8 aTempEncs[nGlyphCount + 1]; - quint32 aQtGlyphId[nGlyphCount + 1]; int nNotDef = -1; @@ -250,7 +249,6 @@ bool Qt5Graphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFa sal_GlyphId aGlyphId(pGlyphIds[i]); aShortIDs[i] = static_cast<sal_uInt16>(aGlyphId); - aQtGlyphId[i] = aShortIDs[i]; if (!aGlyphId && nNotDef < 0) nNotDef = i; // first NotDef glyph found } @@ -263,22 +261,21 @@ bool Qt5Graphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFa // NotDef glyph must be in pos 0 => swap glyphids aShortIDs[nNotDef] = aShortIDs[0]; aTempEncs[nNotDef] = aTempEncs[0]; - aQtGlyphId[nNotDef] = aQtGlyphId[0]; aShortIDs[0] = 0; aTempEncs[0] = 0; - aQtGlyphId[0] = 0; } - QPointF anAdvanceList[nGlyphCount]; - if (!aRawFont.advancesForGlyphIndexes(aQtGlyphId, anAdvanceList, nGlyphCount)) + std::unique_ptr<sal_uInt16[]> pGlyphMetrics + = GetTTSimpleGlyphMetrics(&aTTF, aShortIDs, nGlyphCount, false); + if (!pGlyphMetrics) return false; - QPointF nNotDefAdv = anAdvanceList[0]; - anAdvanceList[0] = anAdvanceList[nNotDef]; - anAdvanceList[nNotDef] = nNotDefAdv; + sal_uInt16 nNotDefAdv = pGlyphMetrics[0]; + pGlyphMetrics[0] = pGlyphMetrics[nNotDef]; + pGlyphMetrics[nNotDef] = nNotDefAdv; for (int i = 0; i < nOrigGlyphCount; ++i) - pGlyphWidths[i] = round(anAdvanceList[i].x()); + pGlyphWidths[i] = pGlyphMetrics[i]; // write subset into destination file Qt5TrueTypeFont aTTF(aRawFont); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits