summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@centrum.cz>2021-02-24 12:45:32 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-03-01 21:25:46 +0100
commit501cdc4fe3392f2d5d97b2940c012a3d0e079cbd (patch)
tree0b120b979fa0f0ac3d4e0de7e2a93036926d8853
parentbbafee3424fdc59d2f69204fefab8a318aeec0e1 (diff)
it's enough to have one Skia font manager
Change-Id: I5dd29178e1a1ec1081820912f49fd387eb3f822b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111521 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> (cherry picked from commit 9cd95b10936450b5d1d60319192c25c4aea05fa3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111772 Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/inc/skia/win/gdiimpl.hxx10
-rw-r--r--vcl/inc/skia/x11/textrender.hxx2
-rw-r--r--vcl/skia/win/gdiimpl.cxx2
3 files changed, 8 insertions, 6 deletions
diff --git a/vcl/inc/skia/win/gdiimpl.hxx b/vcl/inc/skia/win/gdiimpl.hxx
index 167b57147bf3..12d2b2c10c63 100644
--- a/vcl/inc/skia/win/gdiimpl.hxx
+++ b/vcl/inc/skia/win/gdiimpl.hxx
@@ -21,9 +21,9 @@
#include <svdata.hxx>
#include <SkFont.h>
+#include <SkFontMgr.h>
class SkTypeface;
-class SkFontMgr;
class ControlCacheKey;
class SkiaCompatibleDC : public CompatibleDC
@@ -77,10 +77,10 @@ protected:
virtual void performFlush() override;
sk_sp<SkTypeface> createDirectWriteTypeface(const LOGFONTW& logFont);
static void initFontInfo();
- IDWriteFactory* dwriteFactory;
- IDWriteGdiInterop* dwriteGdiInterop;
- sk_sp<SkFontMgr> dwriteFontMgr;
- bool dwriteDone = false;
+ inline static IDWriteFactory* dwriteFactory;
+ inline static IDWriteGdiInterop* dwriteGdiInterop;
+ inline static sk_sp<SkFontMgr> dwriteFontMgr;
+ inline static bool dwriteDone = false;
static SkFont::Edging fontEdging;
};
diff --git a/vcl/inc/skia/x11/textrender.hxx b/vcl/inc/skia/x11/textrender.hxx
index d6eda9a048ea..6943ab4ce416 100644
--- a/vcl/inc/skia/x11/textrender.hxx
+++ b/vcl/inc/skia/x11/textrender.hxx
@@ -32,7 +32,7 @@ public:
virtual void ClearDevFontCache() override;
private:
- sk_sp<SkFontMgr> fontManager;
+ static inline sk_sp<SkFontMgr> fontManager;
};
#endif
diff --git a/vcl/skia/win/gdiimpl.cxx b/vcl/skia/win/gdiimpl.cxx
index d170fa121ec8..d3d9ea1b5cb0 100644
--- a/vcl/skia/win/gdiimpl.cxx
+++ b/vcl/skia/win/gdiimpl.cxx
@@ -158,6 +158,8 @@ sk_sp<SkTypeface> WinSkiaSalGraphicsImpl::createDirectWriteTypeface(const LOGFON
}
dwriteDone = true;
}
+ if (!dwriteFontMgr)
+ return nullptr;
IDWriteFont* font = nullptr;
IDWriteFontFace* fontFace;
IDWriteFontFamily* fontFamily;