diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-10-05 08:25:40 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-10-06 12:04:40 +0200 |
commit | ede39d78282484650796456327a35a879a475cef (patch) | |
tree | 220e3bff19bea06baf6956507578d92eaa54a992 /vcl/inc | |
parent | 2b3bd14c566e97044b50bb81d8d61bc6bb0fd37b (diff) |
UNX merge FreetypeManager into GlyphCache
Change-Id: I736cc60af6d0c91623a25843bd9ff8fcdd9e8e90
Reviewed-on: https://gerrit.libreoffice.org/61453
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/unx/freetype_glyphcache.hxx | 20 | ||||
-rw-r--r-- | vcl/inc/unx/glyphcache.hxx | 9 |
2 files changed, 6 insertions, 23 deletions
diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx index 3e27aa6592ad..3a6a64fb929e 100644 --- a/vcl/inc/unx/freetype_glyphcache.hxx +++ b/vcl/inc/unx/freetype_glyphcache.hxx @@ -86,26 +86,6 @@ private: FontCharMapRef mxFontCharMap; }; -class FreetypeManager -{ -public: - FreetypeManager(); - ~FreetypeManager(); - - void AddFontFile( const OString& rNormalizedName, - int nFaceNum, sal_IntPtr nFontId, const FontAttributes&); - void AnnounceFonts( PhysicalFontCollection* ) const; - void ClearFontList(); - - FreetypeFont* CreateFont(LogicalFontInstance* pLogicalFont); - -private: - typedef std::unordered_map<sal_IntPtr, std::unique_ptr<FreetypeFontInfo>> FontList; - FontList maFontList; - - sal_IntPtr mnMaxFontId; -}; - class FreetypeFontFace : public PhysicalFontFace { private: diff --git a/vcl/inc/unx/glyphcache.hxx b/vcl/inc/unx/glyphcache.hxx index 9d0be13e3a6d..561029b67bbd 100644 --- a/vcl/inc/unx/glyphcache.hxx +++ b/vcl/inc/unx/glyphcache.hxx @@ -38,7 +38,7 @@ #include <unordered_map> -class FreetypeManager; +class FreetypeFont; class FreetypeFontInstance; class FreetypeFontInfo; class GlyphData; @@ -68,7 +68,6 @@ public: FreetypeFont* CacheFont(LogicalFontInstance* pFontInstance); void UncacheFont( FreetypeFont& ); void ClearFontCache(); - void InvalidateAllGlyphs(); void ClearFontOptions(); private: @@ -79,13 +78,16 @@ private: void UsingGlyph( GlyphData const & ); private: + void InitFreetype(); void GarbageCollect(); + FreetypeFont* CreateFont(LogicalFontInstance* pLogicalFont); // the GlyphCache's FontList matches a font request to a serverfont instance // the FontList key's mpFontData member is reinterpreted as integer font id struct IFSD_Equal{ bool operator()( const rtl::Reference<LogicalFontInstance>&, const rtl::Reference<LogicalFontInstance>& ) const; }; struct IFSD_Hash{ size_t operator()( const rtl::Reference<LogicalFontInstance>& ) const; }; typedef std::unordered_map<rtl::Reference<LogicalFontInstance>,std::unique_ptr<FreetypeFont>,IFSD_Hash,IFSD_Equal > FontList; + typedef std::unordered_map<sal_IntPtr, std::unique_ptr<FreetypeFontInfo>> FontInfoList; FontList maFontList; static constexpr sal_uLong gnMaxSize = 1500000; // max overall cache size in bytes @@ -94,7 +96,8 @@ private: mutable int mnGlyphCount; FreetypeFont* mpCurrentGCFont; - std::unique_ptr<FreetypeManager> mpFtManager; + FontInfoList m_aFontInfoList; + sal_IntPtr m_nMaxFontId; }; class GlyphData |