summaryrefslogtreecommitdiff
path: root/vcl/inc
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2018-10-05 08:25:40 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2018-10-06 12:04:40 +0200
commitede39d78282484650796456327a35a879a475cef (patch)
tree220e3bff19bea06baf6956507578d92eaa54a992 /vcl/inc
parent2b3bd14c566e97044b50bb81d8d61bc6bb0fd37b (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.hxx20
-rw-r--r--vcl/inc/unx/glyphcache.hxx9
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