vcl/inc/unx/freetype_glyphcache.hxx | 1 vcl/unx/generic/glyphs/freetype_glyphcache.cxx | 59 ++----------------------- 2 files changed, 5 insertions(+), 55 deletions(-)
New commits: commit 467387ed2f4f226b580da7a674c2ed88365c976a Author: Khaled Hosny <khaledho...@eglug.org> AuthorDate: Wed Aug 28 12:50:22 2019 +0200 Commit: Khaled Hosny <khaledho...@eglug.org> CommitDate: Thu Sep 5 19:24:10 2019 +0200 Merge GetFontCodeRanges() into GetFontCharMap() Change-Id: I61d8edf0be492c1c06274c11ac5d2e65415525a9 Reviewed-on: https://gerrit.libreoffice.org/78638 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledho...@eglug.org> diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx index 6fd0154d98a7..17084fcf5a75 100644 --- a/vcl/inc/unx/freetype_glyphcache.hxx +++ b/vcl/inc/unx/freetype_glyphcache.hxx @@ -75,7 +75,6 @@ public: void AnnounceFont( PhysicalFontCollection* ); - bool GetFontCodeRanges( CmapResult& ) const; const FontCharMapRef& GetFontCharMap(); private: diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx index ed473e9c198a..d58c5bedc097 100644 --- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx +++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx @@ -704,8 +704,11 @@ const FontCharMapRef& FreetypeFontInfo::GetFontCharMap() // get the charmap and cache it CmapResult aCmapResult; - bool bOK = GetFontCodeRanges( aCmapResult ); - if( bOK ) + aCmapResult.mbSymbolic = IsSymbolFont(); + + sal_uLong nLength = 0; + const unsigned char* pCmap = GetTable("cmap", &nLength); + if (pCmap && (nLength > 0) && ParseCMAP(pCmap, nLength, aCmapResult)) { FontCharMapRef xFontCharMap( new FontCharMap ( aCmapResult ) ); mxFontCharMap = xFontCharMap; @@ -719,19 +722,6 @@ const FontCharMapRef& FreetypeFontInfo::GetFontCharMap() return mxFontCharMap; } -// TODO: merge into method GetFontCharMap() -bool FreetypeFontInfo::GetFontCodeRanges( CmapResult& rResult ) const -{ - rResult.mbSymbolic = IsSymbolFont(); - - sal_uLong nLength = 0; - const unsigned char* pCmap = GetTable( "cmap", &nLength ); - if( pCmap && (nLength > 0) ) - if( ParseCMAP( pCmap, nLength, rResult ) ) - return true; - return false; -} - bool FreetypeFont::GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const { bool bRet = false; commit fc0119d0afb7775663762d972b6d5dbc15581c66 Author: Khaled Hosny <khaledho...@eglug.org> AuthorDate: Wed Aug 28 12:46:19 2019 +0200 Commit: Khaled Hosny <khaledho...@eglug.org> CommitDate: Thu Sep 5 19:24:01 2019 +0200 Remove effectively dead code We dropped support for non-SFNT fonts for a while now. Change-Id: Iaa2ea308effa7328bd84240cf29fc3fd117d418a Reviewed-on: https://gerrit.libreoffice.org/78637 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledho...@eglug.org> diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx index 525da6e52b43..ed473e9c198a 100644 --- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx +++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx @@ -465,9 +465,6 @@ FreetypeFont::FreetypeFont(LogicalFontInstance* pFontInstance, FreetypeFontInfo* if( mpFontInfo->IsSymbolFont() ) { FT_Encoding eEncoding = FT_ENCODING_MS_SYMBOL; - if (!FT_IS_SFNT(maFaceFT)) - eEncoding = FT_ENCODING_ADOBE_CUSTOM; // freetype wants this for PS symbol fonts - FT_Select_Charmap(maFaceFT, eEncoding); } @@ -727,48 +724,12 @@ bool FreetypeFontInfo::GetFontCodeRanges( CmapResult& rResult ) const { rResult.mbSymbolic = IsSymbolFont(); - // TODO: is the full CmapResult needed on platforms calling this? - if( FT_IS_SFNT( maFaceFT ) ) - { - sal_uLong nLength = 0; - const unsigned char* pCmap = GetTable( "cmap", &nLength ); - if( pCmap && (nLength > 0) ) - if( ParseCMAP( pCmap, nLength, rResult ) ) - return true; - } - - std::vector<sal_uInt32> aCodes; - - // FT's coverage is available since FT>=2.1.0 (OOo-baseline>=2.1.4 => ok) - aCodes.reserve( 0x1000 ); - FT_UInt nGlyphIndex; - for( sal_uInt32 cCode = FT_Get_First_Char( maFaceFT, &nGlyphIndex );; ) - { - if( !nGlyphIndex ) - break; - aCodes.push_back( cCode ); // first code inside range - sal_uInt32 cNext; - do cNext = FT_Get_Next_Char( maFaceFT, cCode, &nGlyphIndex ); while( cNext == ++cCode ); - aCodes.push_back( cCode ); // first code outside range - cCode = cNext; - } - - const int nCount = aCodes.size(); - if( !nCount) { - if( !rResult.mbSymbolic ) - return false; - - // we usually get here for Type1 symbol fonts - aCodes.push_back( 0xF020 ); - aCodes.push_back( 0xF100 ); - } - - sal_uInt32* pCodes = new sal_uInt32[ nCount ]; - for( int i = 0; i < nCount; ++i ) - pCodes[i] = aCodes[i]; - rResult.mpRangeCodes = pCodes; - rResult.mnRangeCount = nCount / 2; - return true; + sal_uLong nLength = 0; + const unsigned char* pCmap = GetTable( "cmap", &nLength ); + if( pCmap && (nLength > 0) ) + if( ParseCMAP( pCmap, nLength, rResult ) ) + return true; + return false; } bool FreetypeFont::GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits