vcl/inc/unx/printergfx.hxx | 3 vcl/unx/generic/print/genpspgraphics.cxx | 111 +------------------------------ vcl/unx/generic/print/text_gfx.cxx | 22 ------ 3 files changed, 5 insertions(+), 131 deletions(-)
New commits: commit 368de904974b18dc5a8d237e046c0ed005f7c85d Author: Khaled Hosny <khaledho...@eglug.org> Date: Thu Nov 24 09:21:56 2016 +0200 Kill PspFontLayout It should never get used any way. CairoTextRender::GetTextLayout() returns nullptr for the unlikely even that there is no Freetypefont for the requested fallback level, so we do the same. Change-Id: Ib990eb89f9f0fd2bcd87990cbd76406c8d063f57 Reviewed-on: https://gerrit.libreoffice.org/31225 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Khaled Hosny <khaledho...@eglug.org> diff --git a/vcl/inc/unx/printergfx.hxx b/vcl/inc/unx/printergfx.hxx index 0b0512e..88c04d5 100644 --- a/vcl/inc/unx/printergfx.hxx +++ b/vcl/inc/unx/printergfx.hxx @@ -365,8 +365,7 @@ public: const sal_Int32* pDeltaArray); void SetTextColor (PrinterColor& rTextColor) { maTextColor = rTextColor; } - sal_Int32 GetCharWidth (sal_uInt16 nFrom, sal_uInt16 nTo, - long *pWidthArray); + // for CTL void DrawGlyphs( const Point& rPoint, sal_GlyphId* pGlyphIds, diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx index a02005a..a0f1314 100644 --- a/vcl/unx/generic/print/genpspgraphics.cxx +++ b/vcl/unx/generic/print/genpspgraphics.cxx @@ -553,93 +553,6 @@ LogicalFontInstance* ImplPspFontData::CreateFontInstance( FontSelectPattern& rFS return pEntry; } -class PspFontLayout : public GenericSalLayout -{ -public: - explicit PspFontLayout( ::psp::PrinterGfx& ); - virtual bool LayoutText( ImplLayoutArgs& ) override; - virtual void InitFont() const override; - virtual void DrawText( SalGraphics& ) const override; -private: - ::psp::PrinterGfx& mrPrinterGfx; - sal_IntPtr mnFontID; - int mnFontHeight; - int mnFontWidth; - bool mbVertical; - bool mbArtItalic; - bool mbArtBold; -}; - -PspFontLayout::PspFontLayout( ::psp::PrinterGfx& rGfx ) -: mrPrinterGfx( rGfx ) -{ - mnFontID = mrPrinterGfx.GetFontID(); - mnFontHeight = mrPrinterGfx.GetFontHeight(); - mnFontWidth = mrPrinterGfx.GetFontWidth(); - mbVertical = mrPrinterGfx.GetFontVertical(); - mbArtItalic = mrPrinterGfx.GetArtificialItalic(); - mbArtBold = mrPrinterGfx.GetArtificialBold(); -} - -bool PspFontLayout::LayoutText( ImplLayoutArgs& rArgs ) -{ - mbVertical = bool(rArgs.mnFlags & SalLayoutFlags::Vertical); - - long nUnitsPerPixel = 1; - sal_GlyphId aOldGlyphId( GF_DROPPED); - long nGlyphWidth = 0; - int nCharPos = -1; - Point aNewPos( 0, 0 ); - GlyphItem aPrevItem; - rtl_TextEncoding aFontEnc = mrPrinterGfx.GetFontMgr().getFontEncoding( mnFontID ); - const int nLength = rArgs.mrStr.getLength(); - const sal_Unicode *pStr = rArgs.mrStr.getStr(); - Reserve(nLength); - - for(;;) - { - bool bRightToLeft; - if( !rArgs.GetNextPos( &nCharPos, &bRightToLeft ) ) - break; - - sal_Unicode cChar = pStr[ nCharPos ]; - if( bRightToLeft ) - cChar = GetMirroredChar( cChar ); - // symbol font aliasing: 0x0020-0x00ff -> 0xf020 -> 0xf0ff - if( aFontEnc == RTL_TEXTENCODING_SYMBOL ) - if( cChar < 256 ) - cChar += 0xf000; - sal_GlyphId aGlyphId( cChar); // printer glyphs = unicode - - // update fallback_runs if needed - psp::CharacterMetric aMetric; - // coverity[callee_ptr_arith] - mrPrinterGfx.GetFontMgr().getMetrics( mnFontID, cChar, cChar, &aMetric, mbVertical ); - if( aMetric.width == -1 && aMetric.height == -1 ) - rArgs.NeedFallback( nCharPos, bRightToLeft ); - - // finish previous glyph - if( aOldGlyphId != GF_DROPPED ) - AppendGlyph( aPrevItem ); - aOldGlyphId = aGlyphId; - aNewPos.X() += nGlyphWidth; - - // prepare GlyphItem for appending it in next round - nUnitsPerPixel = mrPrinterGfx.GetCharWidth( cChar, cChar, &nGlyphWidth ); - int nGlyphFlags = bRightToLeft ? GlyphItem::IS_RTL_GLYPH : 0; - aGlyphId |= GF_ISCHAR; - aPrevItem = GlyphItem( nCharPos, aGlyphId, aNewPos, nGlyphFlags, nGlyphWidth ); - } - - // append last glyph item if any - if( aOldGlyphId != GF_DROPPED ) - AppendGlyph( aPrevItem ); - - SetOrientation( mrPrinterGfx.GetFontAngle() ); - SetUnitsPerPixel( nUnitsPerPixel ); - return (aOldGlyphId != GF_DROPPED); -} - class PspCommonSalLayout : public CommonSalLayout { public: @@ -676,7 +589,7 @@ void PspCommonSalLayout::InitFont() const mnOrientation, mbVertical, mbArtItalic, mbArtBold); } -static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx) +void GenPspGraphics::DrawTextLayout(const CommonSalLayout& rLayout) { const int nMaxGlyphs = 1; sal_GlyphId aGlyphAry[ nMaxGlyphs ]; @@ -709,26 +622,10 @@ static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx aGlyphAry[i] = aGlyphId; } - rGfx.DrawGlyphs( aPos, aGlyphAry, aUnicodes, nGlyphCount, aIdxAry ); + m_pPrinterGfx->DrawGlyphs( aPos, aGlyphAry, aUnicodes, nGlyphCount, aIdxAry ); } } -void PspFontLayout::InitFont() const -{ - mrPrinterGfx.SetFont( mnFontID, mnFontHeight, mnFontWidth, - mnOrientation, mbVertical, mbArtItalic, mbArtBold ); -} - -void PspFontLayout::DrawText( SalGraphics& ) const -{ - DrawPrinterLayout(*this, mrPrinterGfx); -} - -void GenPspGraphics::DrawTextLayout(const CommonSalLayout& rLayout) -{ - DrawPrinterLayout(rLayout, *m_pPrinterGfx); -} - const FontCharMapRef GenPspGraphics::GetFontCharMap() const { if( !m_pFreetypeFont[0] ) @@ -944,8 +841,8 @@ SalLayout* GenPspGraphics::GetTextLayout(ImplLayoutArgs& /*rArgs*/, int nFallbac { if (m_pFreetypeFont[nFallbackLevel]) return new PspCommonSalLayout(*m_pPrinterGfx, *m_pFreetypeFont[nFallbackLevel]); - else - return new PspFontLayout(*m_pPrinterGfx); + + return nullptr; } bool GenPspGraphics::CreateFontSubset( diff --git a/vcl/unx/generic/print/text_gfx.cxx b/vcl/unx/generic/print/text_gfx.cxx index bf4d4a8..12f23fd 100644 --- a/vcl/unx/generic/print/text_gfx.cxx +++ b/vcl/unx/generic/print/text_gfx.cxx @@ -594,28 +594,6 @@ PrinterGfx::getCharMetric (const Font2 &rFont, sal_Unicode n_char, CharacterMetr return rFont.GetFont(0) != -1 ? rFont.GetFont(0) : rFont.GetFont(1); } -sal_Int32 -PrinterGfx::GetCharWidth (sal_uInt16 nFrom, sal_uInt16 nTo, long *pWidthArray) -{ - Font2 aFont(*this); - if (aFont.IsSymbolFont() && (nFrom < 256) && (nTo < 256)) - { - nFrom += 0xF000; - nTo += 0xF000; - } - - for( int n = 0; n < (nTo - nFrom + 1); n++ ) - { - CharacterMetric aBBox; - // coverity[callee_ptr_arith] - getCharMetric(aFont, n + nFrom, &aBBox); - pWidthArray[n] = getCharWidth (mbTextVertical, n + nFrom, &aBBox); - } - - // returned metrics have postscript precision - return 1000; -} - /* * spool the converted truetype fonts to the page header after the page body is * complete _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits