From 501cdc4fe3392f2d5d97b2940c012a3d0e079cbd Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Wed, 24 Feb 2021 12:45:32 +0000 Subject: it's enough to have one Skia font manager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I5dd29178e1a1ec1081820912f49fd387eb3f822b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111521 Tested-by: Jenkins Reviewed-by: Luboš Luňák (cherry picked from commit 9cd95b10936450b5d1d60319192c25c4aea05fa3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111772 Reviewed-by: Caolán McNamara --- vcl/inc/skia/win/gdiimpl.hxx | 10 +++++----- vcl/inc/skia/x11/textrender.hxx | 2 +- vcl/skia/win/gdiimpl.cxx | 2 ++ 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 #include +#include class SkTypeface; -class SkFontMgr; class ControlCacheKey; class SkiaCompatibleDC : public CompatibleDC @@ -77,10 +77,10 @@ protected: virtual void performFlush() override; sk_sp createDirectWriteTypeface(const LOGFONTW& logFont); static void initFontInfo(); - IDWriteFactory* dwriteFactory; - IDWriteGdiInterop* dwriteGdiInterop; - sk_sp dwriteFontMgr; - bool dwriteDone = false; + inline static IDWriteFactory* dwriteFactory; + inline static IDWriteGdiInterop* dwriteGdiInterop; + inline static sk_sp 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 fontManager; + static inline sk_sp 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 WinSkiaSalGraphicsImpl::createDirectWriteTypeface(const LOGFON } dwriteDone = true; } + if (!dwriteFontMgr) + return nullptr; IDWriteFont* font = nullptr; IDWriteFontFace* fontFace; IDWriteFontFamily* fontFamily; -- cgit