include/vcl/vcllayout.hxx | 3 +-- vcl/inc/sallayout.hxx | 6 ++---- vcl/source/gdi/pdfwriter_impl.cxx | 11 +++++------ vcl/source/gdi/sallayout.cxx | 9 ++------- 4 files changed, 10 insertions(+), 19 deletions(-)
New commits: commit e6a46b235997c309a926bb0573de625a89b29b8c Author: Khaled Hosny <kha...@aliftype.com> AuthorDate: Fri Sep 30 09:55:52 2022 +0200 Commit: خالد حسني <kha...@aliftype.com> CommitDate: Fri Sep 30 12:37:57 2022 +0200 vcl: No need to get font face from GetNextGlyphs() We can take it from the font instance. Change-Id: I54c507d498c58e271c479b0a615b165345a1c33b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140788 Tested-by: Jenkins Reviewed-by: خالد حسني <kha...@aliftype.com> diff --git a/include/vcl/vcllayout.hxx b/include/vcl/vcllayout.hxx index 5030ccadb2b4..07918325c1a6 100644 --- a/include/vcl/vcllayout.hxx +++ b/include/vcl/vcllayout.hxx @@ -102,8 +102,7 @@ public: // methods using glyph indexing virtual bool GetNextGlyph(const GlyphItem** pGlyph, DevicePoint& rPos, int& nStart, - const LogicalFontInstance** ppGlyphFont = nullptr, - const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const = 0; + const LogicalFontInstance** ppGlyphFont = nullptr) const = 0; virtual bool GetOutline(basegfx::B2DPolyPolygonVector&) const; bool GetBoundRect(tools::Rectangle&) const; diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index 970fc6e3b98b..2569ff2d5b62 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -65,8 +65,7 @@ public: DeviceCoordinate FillDXArray(std::vector<DeviceCoordinate>* pDXArray, const OUString& rStr) const override; void GetCaretPositions(int nArraySize, sal_Int32* pCaretXArray) const override; bool GetNextGlyph(const GlyphItem** pGlyph, DevicePoint& rPos, int& nStart, - const LogicalFontInstance** ppGlyphFont = nullptr, - const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override; + const LogicalFontInstance** ppGlyphFont = nullptr) const override; bool GetOutline(basegfx::B2DPolyPolygonVector&) const override; bool IsKashidaPosValid(int nCharPos, int nNextCharPos) const override; SalLayoutGlyphs GetGlyphs() const final override; @@ -129,8 +128,7 @@ public: { return *m_GlyphItems.GetFont(); } bool GetNextGlyph(const GlyphItem** pGlyph, DevicePoint& rPos, int& nStart, - const LogicalFontInstance** ppGlyphFont = nullptr, - const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override; + const LogicalFontInstance** ppGlyphFont = nullptr) const override; const SalLayoutGlyphsImpl& GlyphsImpl() const { return m_GlyphItems; } diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index b42cf4a74840..eb63f9cab38f 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -6580,7 +6580,6 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool FontMetric aRefDevFontMetric = GetFontMetric(); const vcl::font::PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace(); const GlyphItem* pGlyph = nullptr; - const vcl::font::PhysicalFontFace* pFallbackFont = nullptr; const LogicalFontInstance* pGlyphFont = nullptr; // collect the glyphs into a single array @@ -6588,9 +6587,9 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool aGlyphs.reserve( nMaxGlyphs ); // first get all the glyphs and register them; coordinates still in Pixel DevicePoint aPos; - while (rLayout.GetNextGlyph(&pGlyph, aPos, nIndex, &pGlyphFont, &pFallbackFont)) + while (rLayout.GetNextGlyph(&pGlyph, aPos, nIndex, &pGlyphFont)) { - const auto* pFont = pFallbackFont ? pFallbackFont : pDevFont; + const auto* pFace = pGlyphFont->GetFontFace(); aCodeUnits.clear(); @@ -6633,7 +6632,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool // instead. if (!aCodeUnits.empty() && !bUseActualText) { - for (const auto& rSubset : m_aSubsets[pFont].m_aSubsets) + for (const auto& rSubset : m_aSubsets[pFace].m_aSubsets) { const auto& it = rSubset.m_aMapping.find(nGlyphId); if (it != rSubset.m_aMapping.cend() && it->second.codes() != aCodeUnits) @@ -6650,7 +6649,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool sal_uInt8 nMappedGlyph; sal_Int32 nMappedFontObject; - registerGlyph(nGlyphId, pFont, aCodeUnits, nGlyphWidth, nMappedGlyph, nMappedFontObject, pDevFont->IsColorFont()); + registerGlyph(nGlyphId, pFace, aCodeUnits, nGlyphWidth, nMappedGlyph, nMappedFontObject, pDevFont->IsColorFont()); int nCharPos = -1; if (bUseActualText || pGlyph->IsInCluster()) @@ -6658,7 +6657,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool aGlyphs.emplace_back(aPos, pGlyph, - XUnits(pFont->UnitsPerEm(), nGlyphWidth), + XUnits(pFace->UnitsPerEm(), nGlyphWidth), nMappedFontObject, nMappedGlyph, nCharPos); diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index d60b52f8ddaf..ea33fd170e58 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -520,8 +520,7 @@ sal_Int32 GenericSalLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoor bool GenericSalLayout::GetNextGlyph(const GlyphItem** pGlyph, DevicePoint& rPos, int& nStart, - const LogicalFontInstance** ppGlyphFont, - const vcl::font::PhysicalFontFace**) const + const LogicalFontInstance** ppGlyphFont) const { std::vector<GlyphItem>::const_iterator pGlyphIter = m_GlyphItems.begin(); std::vector<GlyphItem>::const_iterator pGlyphIterEnd = m_GlyphItems.end(); @@ -1145,8 +1144,7 @@ void MultiSalLayout::GetCaretPositions( int nMaxIndex, sal_Int32* pCaretXArray ) bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph, DevicePoint& rPos, int& nStart, - const LogicalFontInstance** ppGlyphFont, - const vcl::font::PhysicalFontFace** pFallbackFont) const + const LogicalFontInstance** ppGlyphFont) const { // NOTE: nStart is tagged with current font index int nLevel = static_cast<unsigned>(nStart) >> GF_FONTSHIFT; @@ -1155,13 +1153,10 @@ bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph, { GenericSalLayout& rLayout = *mpLayouts[ nLevel ]; rLayout.InitFont(); - const vcl::font::PhysicalFontFace* pFontFace = rLayout.GetFont().GetFontFace(); if (rLayout.GetNextGlyph(pGlyph, rPos, nStart, ppGlyphFont)) { int nFontTag = nLevel << GF_FONTSHIFT; nStart |= nFontTag; - if (pFallbackFont) - *pFallbackFont = pFontFace; rPos.adjustX(maDrawBase.getX() + maDrawOffset.X()); rPos.adjustY(maDrawBase.getY() + maDrawOffset.Y()); return true;