diff options
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/PhysicalFontFace.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/fontinstance.hxx | 6 | ||||
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/impglyphitem.hxx | 12 | ||||
-rw-r--r-- | vcl/inc/qt5/Qt5Font.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/qt5/Qt5Graphics.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/quartz/salgdi.h | 11 | ||||
-rw-r--r-- | vcl/inc/salgdi.hxx | 3 | ||||
-rw-r--r-- | vcl/inc/sallayout.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/textrender.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/cairotextrender.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/unx/freetype_glyphcache.hxx | 11 | ||||
-rw-r--r-- | vcl/inc/unx/genpspgraphics.h | 2 | ||||
-rw-r--r-- | vcl/inc/unx/glyphcache.hxx | 4 | ||||
-rw-r--r-- | vcl/inc/unx/salgdi.h | 2 | ||||
-rw-r--r-- | vcl/inc/win/salgdi.h | 3 | ||||
-rw-r--r-- | vcl/inc/win/winlayout.hxx | 7 |
17 files changed, 29 insertions, 48 deletions
diff --git a/vcl/inc/PhysicalFontFace.hxx b/vcl/inc/PhysicalFontFace.hxx index c350a6c81649..23af5be9169e 100644 --- a/vcl/inc/PhysicalFontFace.hxx +++ b/vcl/inc/PhysicalFontFace.hxx @@ -54,7 +54,7 @@ public: class VCL_PLUGIN_PUBLIC PhysicalFontFace : public FontAttributes, public salhelper::SimpleReferenceObject { public: - virtual rtl::Reference<LogicalFontInstance> CreateFontInstance(const FontSelectPattern&) const; + virtual rtl::Reference<LogicalFontInstance> CreateFontInstance(const FontSelectPattern&) const = 0; int GetHeight() const { return mnHeight; } int GetWidth() const { return mnWidth; } diff --git a/vcl/inc/fontinstance.hxx b/vcl/inc/fontinstance.hxx index 6f171ce72e49..5e1d70ad9600 100644 --- a/vcl/inc/fontinstance.hxx +++ b/vcl/inc/fontinstance.hxx @@ -70,8 +70,8 @@ public: // TODO: make data members private const PhysicalFontFace* GetFontFace() const { return m_pFontFace.get(); } const ImplFontCache* GetFontCache() const { return mpFontCache; } - bool GetCachedGlyphBoundRect(sal_GlyphId, tools::Rectangle &) const; - void CacheGlyphBoundRect(sal_GlyphId nID, tools::Rectangle &) const; + bool GetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const; + virtual bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const = 0; int GetKashidaWidth(); @@ -81,6 +81,8 @@ public: // TODO: make data members private protected: explicit LogicalFontInstance(const PhysicalFontFace&, const FontSelectPattern&); + virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const = 0; + // Takes ownership of pHbFace. hb_font_t* InitHbFont(hb_face_t* pHbFace) const; virtual hb_font_t* ImplInitHbFont() { assert(false); return nullptr; } diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index d1a4d9264ecc..1b24f2fa8c5d 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -191,8 +191,6 @@ public: bool bVertical, std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout( const GenericSalLayout& ) override; diff --git a/vcl/inc/impglyphitem.hxx b/vcl/inc/impglyphitem.hxx index d4c944717419..4c7673ed2077 100644 --- a/vcl/inc/impglyphitem.hxx +++ b/vcl/inc/impglyphitem.hxx @@ -76,18 +76,18 @@ struct VCL_DLLPUBLIC GlyphItem bool IsDropped() const { return ((m_nFlags & IS_DROPPED) != 0); } bool IsClusterStart() const { return ((m_nFlags & IS_CLUSTER_START) != 0); } - inline bool GetCachedGlyphBoundRect(tools::Rectangle& rRect) const; - inline void CacheGlyphBoundRect(tools::Rectangle& rRect) const; + inline bool GetGlyphBoundRect(tools::Rectangle&) const; + inline bool GetGlyphOutline(basegfx::B2DPolyPolygon&) const; }; -VCL_DLLPUBLIC bool GlyphItem::GetCachedGlyphBoundRect(tools::Rectangle& rRect) const +VCL_DLLPUBLIC bool GlyphItem::GetGlyphBoundRect(tools::Rectangle& rRect) const { - return m_pFontInstance->GetCachedGlyphBoundRect(m_aGlyphId, rRect); + return m_pFontInstance->GetGlyphBoundRect(m_aGlyphId, rRect, IsVertical()); } -VCL_DLLPUBLIC void GlyphItem::CacheGlyphBoundRect(tools::Rectangle& rRect) const +VCL_DLLPUBLIC bool GlyphItem::GetGlyphOutline(basegfx::B2DPolyPolygon& rPoly) const { - m_pFontInstance->CacheGlyphBoundRect(m_aGlyphId, rRect); + return m_pFontInstance->GetGlyphOutline(m_aGlyphId, rPoly, IsVertical()); } class SalLayoutGlyphsImpl : public std::vector<GlyphItem> diff --git a/vcl/inc/qt5/Qt5Font.hxx b/vcl/inc/qt5/Qt5Font.hxx index de5cd16039f1..0720be93112b 100644 --- a/vcl/inc/qt5/Qt5Font.hxx +++ b/vcl/inc/qt5/Qt5Font.hxx @@ -30,6 +30,9 @@ class Qt5Font final : public QFont, public LogicalFontInstance friend rtl::Reference<LogicalFontInstance> Qt5FontFace::CreateFontInstance(const FontSelectPattern&) const; + bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const override; + bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override; + virtual hb_font_t* ImplInitHbFont() override; explicit Qt5Font(const PhysicalFontFace&, const FontSelectPattern&); diff --git a/vcl/inc/qt5/Qt5Graphics.hxx b/vcl/inc/qt5/Qt5Graphics.hxx index 76c39146728c..d60a42c8c496 100644 --- a/vcl/inc/qt5/Qt5Graphics.hxx +++ b/vcl/inc/qt5/Qt5Graphics.hxx @@ -195,9 +195,6 @@ public: virtual void GetGlyphWidths(const PhysicalFontFace*, bool bVertical, std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; - virtual std::unique_ptr<SalLayout> GetTextLayout(ImplLayoutArgs&, int nFallbackLevel) override; virtual void DrawTextLayout(const GenericSalLayout&) override; diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h index 0fb20bb490cc..b79bf4425534 100644 --- a/vcl/inc/quartz/salgdi.h +++ b/vcl/inc/quartz/salgdi.h @@ -77,7 +77,7 @@ private: mutable bool mbFontCapabilitiesRead; }; -class CoreTextStyle : public LogicalFontInstance +class CoreTextStyle final : public LogicalFontInstance { friend rtl::Reference<LogicalFontInstance> CoreTextFontFace::CreateFontInstance(const FontSelectPattern&) const; @@ -85,8 +85,7 @@ public: ~CoreTextStyle() override; void GetFontMetric( ImplFontMetricDataRef const & ); - bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&); - bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) const; + bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const override; CFMutableDictionaryRef GetStyleDict( void ) const { return mpStyleDict; } @@ -98,7 +97,8 @@ public: private: explicit CoreTextStyle(const PhysicalFontFace&, const FontSelectPattern&); - virtual hb_font_t* ImplInitHbFont() override; + hb_font_t* ImplInitHbFont() override; + bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override; /// CoreText text style object CFMutableDictionaryRef mpStyleDict; @@ -373,9 +373,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; - virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout( const GenericSalLayout& ) override; diff --git a/vcl/inc/salgdi.hxx b/vcl/inc/salgdi.hxx index eb96cfa22a13..e2d6a62278eb 100644 --- a/vcl/inc/salgdi.hxx +++ b/vcl/inc/salgdi.hxx @@ -189,9 +189,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) = 0; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) = 0; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) = 0; - virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) = 0; virtual void DrawTextLayout( const GenericSalLayout& ) = 0; diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index 56c25f9d70c4..cd2b02f105aa 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -133,7 +133,7 @@ public: bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart, const PhysicalFontFace** pFallbackFont = nullptr, int* const pFallbackLevel = nullptr) const override; - bool GetOutline(SalGraphics&, basegfx::B2DPolyPolygonVector&) const override; + bool GetOutline(basegfx::B2DPolyPolygonVector&) const override; bool IsKashidaPosValid(int nCharPos) const override; // used only by OutputDevice::ImplLayout, TODO: make friend diff --git a/vcl/inc/textrender.hxx b/vcl/inc/textrender.hxx index 33c803dba82b..31bcb04c7628 100644 --- a/vcl/inc/textrender.hxx +++ b/vcl/inc/textrender.hxx @@ -59,8 +59,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) = 0; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) = 0; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) = 0; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) = 0; virtual void DrawTextLayout(const GenericSalLayout&, const SalGraphics&) = 0; diff --git a/vcl/inc/unx/cairotextrender.hxx b/vcl/inc/unx/cairotextrender.hxx index 8d18836be91b..25272b92637e 100644 --- a/vcl/inc/unx/cairotextrender.hxx +++ b/vcl/inc/unx/cairotextrender.hxx @@ -75,8 +75,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout(const GenericSalLayout&, const SalGraphics&) override; diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx index 58cd4eba38b1..774eec877957 100644 --- a/vcl/inc/unx/freetype_glyphcache.hxx +++ b/vcl/inc/unx/freetype_glyphcache.hxx @@ -107,6 +107,7 @@ class VCL_DLLPUBLIC FreetypeFontInstance : public LogicalFontInstance FreetypeFont* mpFreetypeFont; virtual hb_font_t* ImplInitHbFont() override; + virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override; protected: explicit FreetypeFontInstance(const PhysicalFontFace& rPFF, const FontSelectPattern& rFSP); @@ -116,15 +117,9 @@ public: void SetFreetypeFont(FreetypeFont* p); FreetypeFont* GetFreetypeFont() const { return mpFreetypeFont; } -}; -inline FreetypeFont* getFreetypeFontFromGlyph(const GlyphItem& rGlyph) -{ - assert(rGlyph.m_pFontInstance); - if (!rGlyph.m_pFontInstance) - return nullptr; - return static_cast<FreetypeFontInstance*>(rGlyph.m_pFontInstance)->GetFreetypeFont(); -} + virtual bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const override; +}; #endif // INCLUDED_VCL_GENERIC_GLYPHS_GCACH_FTYP_HXX diff --git a/vcl/inc/unx/genpspgraphics.h b/vcl/inc/unx/genpspgraphics.h index bddcb888ebc6..e7314cb2ace3 100644 --- a/vcl/inc/unx/genpspgraphics.h +++ b/vcl/inc/unx/genpspgraphics.h @@ -111,8 +111,6 @@ public: bool bVertical, std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout( const GenericSalLayout& ) override; diff --git a/vcl/inc/unx/glyphcache.hxx b/vcl/inc/unx/glyphcache.hxx index 9fe3bd3dc7cf..185d42cb683d 100644 --- a/vcl/inc/unx/glyphcache.hxx +++ b/vcl/inc/unx/glyphcache.hxx @@ -111,8 +111,8 @@ public: const FontCharMapRef GetFontCharMap() const; bool GetFontCapabilities(vcl::FontCapabilities &) const; - bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&); - bool GetGlyphOutline(const GlyphItem& rGlyph, basegfx::B2DPolyPolygon&) const; + bool GetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const; + bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const; bool GetAntialiasAdvice() const; FreetypeFontInstance* GetFontInstance() const { return mpFontInstance.get(); } diff --git a/vcl/inc/unx/salgdi.h b/vcl/inc/unx/salgdi.h index 94f4a9a00a06..4fd30762d045 100644 --- a/vcl/inc/unx/salgdi.h +++ b/vcl/inc/unx/salgdi.h @@ -141,8 +141,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout( const GenericSalLayout& ) override; diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index e8fe72cc4ca7..4b829f36d886 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -373,9 +373,6 @@ public: std::vector< sal_Int32 >& rWidths, Ucs2UIntMap& rUnicodeEnc ) override; - virtual bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) override; - virtual bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) override; - virtual std::unique_ptr<SalLayout> GetTextLayout( ImplLayoutArgs&, int nFallbackLevel ) override; virtual void DrawTextLayout( const GenericSalLayout& ) override; diff --git a/vcl/inc/win/winlayout.hxx b/vcl/inc/win/winlayout.hxx index 036c1d3bcbbd..042e30e9f299 100644 --- a/vcl/inc/win/winlayout.hxx +++ b/vcl/inc/win/winlayout.hxx @@ -148,7 +148,7 @@ class WinFontInstance : public LogicalFontInstance friend rtl::Reference<LogicalFontInstance> WinFontFace::CreateFontInstance(const FontSelectPattern&) const; public: - virtual ~WinFontInstance() override; + ~WinFontInstance() override; bool hasHScale() const; @@ -167,10 +167,13 @@ public: bool CacheGlyphToAtlas(HDC hDC, HFONT hFont, int nGlyphIndex, SalGraphics& rGraphics); OpenGLGlyphCache& GetOpenGLGlyphCache() { return maOpenGLGlyphCache; } + bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const override; + private: explicit WinFontInstance(const WinFontFace&, const FontSelectPattern&); - virtual hb_font_t* ImplInitHbFont() override; + hb_font_t* ImplInitHbFont() override; + bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override; WinSalGraphics *m_pGraphics; HFONT m_hFont; |