diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2016-01-08 21:04:23 +1100 |
---|---|---|
committer | Chris Sherlock <chris.sherlock79@gmail.com> | 2016-01-08 23:43:50 +0000 |
commit | ad241f51fe6ae4f5dc37050cf3bea65fc4163084 (patch) | |
tree | 7cca06f686ac7254c63e6c12c5bc31be445ff02c /vcl | |
parent | 47bac0de19fc4ca2c9d469b64fcbffe15bc4a0a3 (diff) |
vcl: change ImplFontEntry to LogicalFontInstance
There is a TODO in the code that suggests to do this, when I looked at the
collaboration diagram on Doxygen things made a LOT more sense.
Change-Id: If335498bb70872ffa5738cc5c17660faec84c35e
Reviewed-on: https://gerrit.libreoffice.org/21257
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
Diffstat (limited to 'vcl')
45 files changed, 351 insertions, 340 deletions
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 6f2494287c5a..f7a1a65796e8 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -395,7 +395,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/font/PhysicalFontFamily \ vcl/source/font/fontattributes \ vcl/source/font/fontselect \ - vcl/source/font/fontentry \ + vcl/source/font/fontinstance \ vcl/source/font/fontcache \ vcl/source/fontsubset/cff \ vcl/source/fontsubset/fontsubset \ diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx index 6170ee8d991b..531e62243f78 100644 --- a/vcl/generic/fontmanager/fontconfig.cxx +++ b/vcl/generic/fontmanager/fontconfig.cxx @@ -24,7 +24,7 @@ #include <vcl/sysdata.hxx> #include <vcl/vclenum.hxx> #include <vcl/wrkwin.hxx> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include <i18nlangtag/languagetag.hxx> #include <i18nutil/unicode.hxx> #include <rtl/strbuf.hxx> diff --git a/vcl/generic/fontmanager/fontsubst.cxx b/vcl/generic/fontmanager/fontsubst.cxx index d4d2ba885a25..5f7bfb361d46 100644 --- a/vcl/generic/fontmanager/fontsubst.cxx +++ b/vcl/generic/fontmanager/fontsubst.cxx @@ -22,7 +22,7 @@ #include "generic/glyphcache.hxx" #include "vcl/sysdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "generic/printergfx.hxx" #include "salbmp.hxx" diff --git a/vcl/generic/glyphs/gcach_ftyp.cxx b/vcl/generic/glyphs/gcach_ftyp.cxx index c4c5754a05df..0af7cd91e829 100644 --- a/vcl/generic/glyphs/gcach_ftyp.cxx +++ b/vcl/generic/glyphs/gcach_ftyp.cxx @@ -23,7 +23,7 @@ #include "gcach_ftyp.hxx" #include "vcl/svapp.hxx" -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <impfont.hxx> #include "fontattributes.hxx" @@ -432,7 +432,7 @@ ImplFTSFontData::ImplFTSFontData( FreetypeFontInfo* pFI, const ImplFontAttribute SetOrientationFlag( true ); } -ImplFontEntry* ImplFTSFontData::CreateFontInstance( FontSelectPattern& rFSD ) const +LogicalFontInstance* ImplFTSFontData::CreateFontInstance( FontSelectPattern& rFSD ) const { ImplServerFontEntry* pEntry = new ImplServerFontEntry( rFSD ); return pEntry; @@ -462,9 +462,9 @@ ServerFont::ServerFont( const FontSelectPattern& rFSD, FreetypeFontInfo* pFI ) mbUseGamma( false ), mpLayoutEngine( nullptr ) { - // TODO: move update of mpFontEntry into FontEntry class when + // TODO: move update of mpFontInstance into FontEntry class when // it becomes responsible for the ServerFont instantiation - static_cast<ImplServerFontEntry*>(rFSD.mpFontEntry)->SetServerFont( this ); + static_cast<ImplServerFontEntry*>(rFSD.mpFontInstance)->SetServerFont( this ); maFaceFT = pFI->GetFaceFT(); diff --git a/vcl/generic/glyphs/gcach_ftyp.hxx b/vcl/generic/glyphs/gcach_ftyp.hxx index acd74ec36263..530b2d39defd 100644 --- a/vcl/generic/glyphs/gcach_ftyp.hxx +++ b/vcl/generic/glyphs/gcach_ftyp.hxx @@ -154,7 +154,7 @@ private: public: ImplFTSFontData( FreetypeFontInfo*, const ImplFontAttributes& ); - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const override; + virtual LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const override; virtual PhysicalFontFace* Clone() const override { return new ImplFTSFontData( *this ); } virtual sal_IntPtr GetFontId() const override { return mpFreetypeFontInfo->GetFontId(); } }; diff --git a/vcl/generic/glyphs/glyphcache.cxx b/vcl/generic/glyphs/glyphcache.cxx index 798b3e29305f..eab5277ec5c5 100644 --- a/vcl/generic/glyphs/glyphcache.cxx +++ b/vcl/generic/glyphs/glyphcache.cxx @@ -23,7 +23,7 @@ #include <vcl/svapp.hxx> #include <vcl/bitmap.hxx> -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <fontattributes.hxx> #include <config_graphite.h> @@ -354,7 +354,7 @@ void ServerFont::GarbageCollect( long nMinLruIndex ) } ImplServerFontEntry::ImplServerFontEntry( FontSelectPattern& rFSD ) -: ImplFontEntry( rFSD ) +: LogicalFontInstance( rFSD ) , mpServerFont( nullptr ) , mbGotFontOptions( false ) {} diff --git a/vcl/generic/print/genpspgraphics.cxx b/vcl/generic/print/genpspgraphics.cxx index d35816f11701..335f40c0a2cd 100644 --- a/vcl/generic/print/genpspgraphics.cxx +++ b/vcl/generic/print/genpspgraphics.cxx @@ -50,7 +50,7 @@ #include "generic/printergfx.hxx" #include "impfont.hxx" #include "langboost.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "PhysicalFontCollection.hxx" #include "PhysicalFontFace.hxx" @@ -550,7 +550,7 @@ public: explicit ImplPspFontData( const psp::FastPrintFontInfo& ); virtual sal_IntPtr GetFontId() const override { return mnFontId; } virtual PhysicalFontFace* Clone() const override { return new ImplPspFontData( *this ); } - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const override; + virtual LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const override; }; ImplPspFontData::ImplPspFontData( const psp::FastPrintFontInfo& rInfo ) @@ -558,7 +558,7 @@ ImplPspFontData::ImplPspFontData( const psp::FastPrintFontInfo& rInfo ) mnFontId( rInfo.m_nID ) {} -ImplFontEntry* ImplPspFontData::CreateFontInstance( FontSelectPattern& rFSD ) const +LogicalFontInstance* ImplPspFontData::CreateFontInstance( FontSelectPattern& rFSD ) const { ImplServerFontEntry* pEntry = new ImplServerFontEntry( rFSD ); return pEntry; diff --git a/vcl/inc/PhysicalFontCollection.hxx b/vcl/inc/PhysicalFontCollection.hxx index f283278c46bf..87f4181a56b7 100644 --- a/vcl/inc/PhysicalFontCollection.hxx +++ b/vcl/inc/PhysicalFontCollection.hxx @@ -22,7 +22,7 @@ #include <vcl/dllapi.h> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontFamily.hxx" class ImplGlyphFallbackFontSubstitution; diff --git a/vcl/inc/PhysicalFontFace.hxx b/vcl/inc/PhysicalFontFace.hxx index 1f4857714b71..cebb6a0c792e 100644 --- a/vcl/inc/PhysicalFontFace.hxx +++ b/vcl/inc/PhysicalFontFace.hxx @@ -22,11 +22,11 @@ #include <vcl/dllapi.h> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "fontselect.hxx" -class ImplFontEntry; +class LogicalFontInstance; struct FontMatchStatus; class FontSelectPattern; class PhysicalFontFamily; @@ -71,9 +71,9 @@ public: virtual ~PhysicalFontFace() {} // by using an PhysicalFontFace object as a factory for its corresponding - // ImplFontEntry an ImplFontEntry can be extended to cache device and - // font instance specific data - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const = 0; + // LogicalFontInstance can be extended to cache device and font instance + // specific data + virtual LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const = 0; virtual PhysicalFontFace* Clone() const = 0; int GetHeight() const { return mnHeight; } diff --git a/vcl/inc/fontentry.hxx b/vcl/inc/fontinstance.hxx index d654788c4fbe..01f4c5900f75 100644 --- a/vcl/inc/fontentry.hxx +++ b/vcl/inc/fontinstance.hxx @@ -31,14 +31,13 @@ class ImplFontCache; class ConvertChar; -// TODO: rename ImplFontEntry to LogicalFontInstance // TODO: allow sharing of metrics for related fonts -class VCL_PLUGIN_PUBLIC ImplFontEntry +class VCL_PLUGIN_PUBLIC LogicalFontInstance { public: - explicit ImplFontEntry( const FontSelectPattern& ); - virtual ~ImplFontEntry(); + explicit LogicalFontInstance( const FontSelectPattern& ); + virtual ~LogicalFontInstance(); public: // TODO: make data members private ImplFontCache * m_pFontCache; diff --git a/vcl/inc/fontselect.hxx b/vcl/inc/fontselect.hxx index 595f3c9018fa..0a23105f66a0 100644 --- a/vcl/inc/fontselect.hxx +++ b/vcl/inc/fontselect.hxx @@ -26,7 +26,7 @@ #include <unordered_map> class PhysicalFontFace; -class ImplFontEntry; +class LogicalFontInstance; class ImplFontCache; namespace vcl { class Font; } class ConvertChar; @@ -78,7 +78,7 @@ public: public: // TODO: change to private const PhysicalFontFace* mpFontData; // a matching PhysicalFontFace object - ImplFontEntry* mpFontEntry; // pointer to the resulting FontCache entry + LogicalFontInstance* mpFontInstance; // pointer to the resulting FontCache entry void copyAttributes(const FontSelectPatternAttributes &rAttributes); }; diff --git a/vcl/inc/generic/glyphcache.hxx b/vcl/inc/generic/glyphcache.hxx index e0513583540b..951c21186786 100644 --- a/vcl/inc/generic/glyphcache.hxx +++ b/vcl/inc/generic/glyphcache.hxx @@ -32,7 +32,7 @@ #include <vcl/dllapi.h> #include <vcl/metric.hxx> -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <sallayout.hxx> #include "fontattributes.hxx" @@ -243,7 +243,7 @@ private: }; // a class for cache entries for physical font instances that are based on serverfonts -class VCL_DLLPUBLIC ImplServerFontEntry : public ImplFontEntry +class VCL_DLLPUBLIC ImplServerFontEntry : public LogicalFontInstance { public: ImplServerFontEntry( FontSelectPattern& ); diff --git a/vcl/inc/impfont.hxx b/vcl/inc/impfont.hxx index 13ee4ecc7ec0..904c9ebc8da4 100644 --- a/vcl/inc/impfont.hxx +++ b/vcl/inc/impfont.hxx @@ -27,7 +27,7 @@ #include <vcl/dllapi.h> #include <vcl/vclenum.hxx> #include <vcl/fntstyle.hxx> -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <boost/intrusive_ptr.hpp> diff --git a/vcl/inc/outdev.h b/vcl/inc/outdev.h index 88a7f5c382e8..9310cfe2d55b 100644 --- a/vcl/inc/outdev.h +++ b/vcl/inc/outdev.h @@ -27,7 +27,7 @@ #include <tools/gen.hxx> #include <vcl/vclptr.hxx> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontFace.hxx" class Size; @@ -129,13 +129,13 @@ public: class ImplFontCache { private: - ImplFontEntry* mpFirstEntry; - int mnRef0Count; // number of unreferenced ImplFontEntries + LogicalFontInstance* mpFirstEntry; + int mnRef0Count; // number of unreferenced LogicalFontInstances // cache of recently used font instances struct IFSD_Equal { bool operator()( const FontSelectPattern&, const FontSelectPattern& ) const; }; struct IFSD_Hash { size_t operator()( const FontSelectPattern& ) const; }; - typedef std::unordered_map<FontSelectPattern,ImplFontEntry*,IFSD_Hash,IFSD_Equal > FontInstanceList; + typedef std::unordered_map<FontSelectPattern,LogicalFontInstance*,IFSD_Hash,IFSD_Equal > FontInstanceList; FontInstanceList maFontInstanceList; int CountUnreferencedEntries() const; @@ -144,16 +144,16 @@ public: ImplFontCache(); ~ImplFontCache(); - ImplFontEntry* GetFontEntry( PhysicalFontCollection*, + LogicalFontInstance* GetFontInstance( PhysicalFontCollection*, const vcl::Font&, const Size& rPixelSize, float fExactHeight); - ImplFontEntry* GetFontEntry( PhysicalFontCollection*, FontSelectPattern& ); - ImplFontEntry* GetGlyphFallbackFont( PhysicalFontCollection*, FontSelectPattern&, + LogicalFontInstance* GetFontInstance( PhysicalFontCollection*, FontSelectPattern& ); + LogicalFontInstance* GetGlyphFallbackFont( PhysicalFontCollection*, FontSelectPattern&, int nFallbackLevel, OUString& rMissingCodes ); - /// Increase the refcount of the given ImplFontEntry. - void Acquire(ImplFontEntry*); + /// Increase the refcount of the given LogicalFontInstance. + void Acquire(LogicalFontInstance*); /// Decrease the refcount and potentially cleanup the entries with zero refcount from the cache. - void Release(ImplFontEntry*); + void Release(LogicalFontInstance*); void Invalidate(); }; diff --git a/vcl/inc/pch/precompiled_vcl.hxx b/vcl/inc/pch/precompiled_vcl.hxx index 45c5dc6fa54b..99ba74689424 100644 --- a/vcl/inc/pch/precompiled_vcl.hxx +++ b/vcl/inc/pch/precompiled_vcl.hxx @@ -13,7 +13,7 @@ manual changes will be rewritten by the next run of update_pch.sh (which presumably also fixes all possible problems, so it's usually better to use it). - Generated on 2016-01-07 18:28:08 using: + Generated on 2016-01-08 23:14:46 using: ./bin/update_pch vcl vcl --cutoff=6 --exclude:system --include:module --include:local If after updating build fails, use the following command to locate conflicting headers: @@ -27,6 +27,7 @@ #include <config_features.h> #include <config_folders.h> #include <config_global.h> +#include <config_graphite.h> #include <cstddef> #include <cstdlib> #include <cstring> @@ -35,7 +36,6 @@ #include <functional> #include <iomanip> #include <limits.h> -#include <map> #include <math.h> #include <memory> #include <new> @@ -56,7 +56,6 @@ #include <window.h> #include <boost/dynamic_bitset.hpp> #include <boost/functional/hash.hpp> -#include <boost/intrusive_ptr.hpp> #include <boost/math/special_functions/sinc.hpp> #include <boost/multi_array.hpp> #include <boost/optional.hpp> @@ -130,12 +129,14 @@ #include <salsys.hxx> #include <saltimer.hxx> #include <salvd.hxx> +#include <vcl/FilterConfigItem.hxx> #include <vcl/alpha.hxx> #include <vcl/bitmap.hxx> #include <vcl/bitmapex.hxx> #include <vcl/bmpacc.hxx> #include <vcl/button.hxx> #include <vcl/canvastools.hxx> +#include <vcl/combobox.hxx> #include <vcl/configsettings.hxx> #include <vcl/ctrl.hxx> #include <vcl/cursor.hxx> @@ -147,10 +148,13 @@ #include <vcl/dockwin.hxx> #include <vcl/edit.hxx> #include <vcl/event.hxx> +#include <vcl/field.hxx> #include <vcl/fixed.hxx> #include <vcl/floatwin.hxx> +#include <vcl/fltcall.hxx> #include <vcl/fntstyle.hxx> #include <vcl/font.hxx> +#include <vcl/fontcharmap.hxx> #include <vcl/gdimtf.hxx> #include <vcl/gradient.hxx> #include <vcl/graph.hxx> @@ -178,6 +182,7 @@ #include <vcl/salnativewidgets.hxx> #include <vcl/scrbar.hxx> #include <vcl/settings.hxx> +#include <vcl/spinfld.hxx> #include <vcl/svapp.hxx> #include <vcl/syswin.hxx> #include <vcl/tabctrl.hxx> @@ -194,6 +199,7 @@ #include <GL/glew.h> #include <PhysicalFontCollection.hxx> #include <PhysicalFontFace.hxx> +#include <PhysicalFontFamily.hxx> #include <basegfx/basegfxdllapi.h> #include <basegfx/color/bcolor.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> @@ -215,6 +221,10 @@ #include <brdwin.hxx> #include <com/sun/star/awt/Key.hpp> #include <com/sun/star/awt/KeyGroup.hpp> +#include <com/sun/star/awt/Size.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> +#include <com/sun/star/beans/XPropertyAccess.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/datatransfer/clipboard/XClipboard.hpp> #include <com/sun/star/datatransfer/dnd/XDropTarget.hpp> @@ -225,6 +235,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XTypeProvider.hpp> +#include <com/sun/star/task/XStatusIndicator.hpp> #include <com/sun/star/uno/Any.h> #include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Reference.h> @@ -260,7 +271,8 @@ #include <cppuhelper/weakagg.hxx> #include <cppuhelper/weakref.hxx> #include <dndlcon.hxx> -#include <fontentry.hxx> +#include <fontattributes.hxx> +#include <fontinstance.hxx> #include <helpwin.hxx> #include <i18nlangtag/i18nlangtagdllapi.h> #include <i18nlangtag/lang.h> diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h index 506895c1fe60..836eee2ed5b6 100644 --- a/vcl/inc/quartz/salgdi.h +++ b/vcl/inc/quartz/salgdi.h @@ -38,7 +38,7 @@ #include <vcl/fontcapabilities.hxx> #include <vcl/metric.hxx> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontFace.hxx" #include "salgdi.hxx" @@ -61,7 +61,7 @@ public: virtual ~CoreTextFontData(); PhysicalFontFace* Clone() const override; - ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const override; + LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const override; sal_IntPtr GetFontId() const override; int GetFontTable( const char pTagName[5], unsigned char* ) const; diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index c6dbd60a0aa7..f1c8c3a681bb 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -23,7 +23,7 @@ #include "sallayout.hxx" #include "salgeom.hxx" #include "salgdi.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "PhysicalFontFace.hxx" #include "impfont.hxx" @@ -79,8 +79,8 @@ public: BYTE nPitchAndFamily ); virtual ~ImplWinFontData(); - virtual PhysicalFontFace* Clone() const override; - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const override; + virtual PhysicalFontFace* Clone() const override; + virtual LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const override; virtual sal_IntPtr GetFontId() const override; void SetFontId( sal_IntPtr nId ) { mnId = nId; } void UpdateFromHDC( HDC ) const; diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx index d516d76ea7a9..4d847ba8f9af 100644 --- a/vcl/quartz/ctfonts.cxx +++ b/vcl/quartz/ctfonts.cxx @@ -31,7 +31,7 @@ #include "osx/saldata.hxx" #include "osx/salinst.h" #endif -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "PhysicalFontCollection.hxx" #include "quartz/salgdi.h" @@ -240,9 +240,9 @@ PhysicalFontFace* CoreTextFontData::Clone() const return new CoreTextFontData( *this); } -ImplFontEntry* CoreTextFontData::CreateFontInstance( /*const*/ FontSelectPattern& rFSD ) const +LogicalFontInstance* CoreTextFontData::CreateFontInstance( /*const*/ FontSelectPattern& rFSD ) const { - return new ImplFontEntry( rFSD); + return new LogicalFontInstance( rFSD); } int CoreTextFontData::GetFontTable( const char pTagName[5], unsigned char* pResultBuf ) const diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index 5eeaf9922df2..33d08dd5e91e 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -63,7 +63,7 @@ #include "accmgr.hxx" #include "idlemgr.hxx" #include "outdev.h" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontCollection.hxx" #include "print.h" #include "salgdi.hxx" diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx index fbe484fd5cf3..bcfd9a71ec72 100644 --- a/vcl/source/font/PhysicalFontCollection.cxx +++ b/vcl/source/font/PhysicalFontCollection.cxx @@ -32,7 +32,7 @@ #include "magic.h" #include "outdev.h" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "PhysicalFontFace.hxx" @@ -211,7 +211,7 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt while( nStrIndex < rMissingCodes.getLength() ) { cChar = rMissingCodes.iterateCodePoints( &nStrIndex ); - bCached = rFontSelData.mpFontEntry->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ); + bCached = rFontSelData.mpFontInstance->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ); // ignore entries which don't have a fallback if( !bCached || !rFontSelData.maSearchName.isEmpty() ) @@ -229,7 +229,7 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt while( nStrIndex < rMissingCodes.getLength() ) { cChar = rMissingCodes.iterateCodePoints( &nStrIndex ); - bCached = rFontSelData.mpFontEntry->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &aFontName ); + bCached = rFontSelData.mpFontInstance->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &aFontName ); if( !bCached || (rFontSelData.maSearchName != aFontName) ) pRemainingCodes[ nRemainingLength++ ] = cChar; } @@ -257,8 +257,8 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt { for(;;) { - if( !rFontSelData.mpFontEntry->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ) ) - rFontSelData.mpFontEntry->AddFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName ); + if( !rFontSelData.mpFontInstance->GetFallbackForUnicode( cChar, rFontSelData.GetWeight(), &rFontSelData.maSearchName ) ) + rFontSelData.mpFontInstance->AddFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName ); if( nStrIndex >= aOldMissingCodes.getLength() ) break; cChar = aOldMissingCodes.iterateCodePoints( &nStrIndex ); @@ -269,7 +269,7 @@ PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( FontSelectPatt for( nStrIndex = 0; nStrIndex < rMissingCodes.getLength(); ) { cChar = rMissingCodes.iterateCodePoints( &nStrIndex ); - rFontSelData.mpFontEntry->IgnoreFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName ); + rFontSelData.mpFontInstance->IgnoreFallbackForUnicode( cChar, rFontSelData.GetWeight(), rFontSelData.maSearchName ); } } } diff --git a/vcl/source/font/PhysicalFontFace.cxx b/vcl/source/font/PhysicalFontFace.cxx index de031139af5c..c5194fb1a72c 100644 --- a/vcl/source/font/PhysicalFontFace.cxx +++ b/vcl/source/font/PhysicalFontFace.cxx @@ -21,7 +21,7 @@ #include <tools/fontenum.hxx> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "PhysicalFontFace.hxx" diff --git a/vcl/source/font/fontattributes.cxx b/vcl/source/font/fontattributes.cxx index c27be5bdbb00..d823748ff941 100644 --- a/vcl/source/font/fontattributes.cxx +++ b/vcl/source/font/fontattributes.cxx @@ -33,7 +33,7 @@ #include "impfont.hxx" #include "outdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "outdev.h" diff --git a/vcl/source/font/fontcache.cxx b/vcl/source/font/fontcache.cxx index 1b4b11079a00..d9e0dffe5976 100644 --- a/vcl/source/font/fontcache.cxx +++ b/vcl/source/font/fontcache.cxx @@ -33,7 +33,7 @@ #include "impfont.hxx" #include "outdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "outdev.h" @@ -135,39 +135,39 @@ ImplFontCache::~ImplFontCache() FontInstanceList::iterator it = maFontInstanceList.begin(); for(; it != maFontInstanceList.end(); ++it ) { - ImplFontEntry* pEntry = (*it).second; - delete pEntry; + LogicalFontInstance* pFontInstance = (*it).second; + delete pFontInstance; } } -ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, +LogicalFontInstance* ImplFontCache::GetFontInstance( PhysicalFontCollection* pFontList, const vcl::Font& rFont, const Size& rSize, float fExactHeight ) { OUString aSearchName = rFont.GetName(); // initialize internal font request object FontSelectPattern aFontSelData( rFont, aSearchName, rSize, fExactHeight ); - return GetFontEntry( pFontList, aFontSelData ); + return GetFontInstance( pFontList, aFontSelData ); } -ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, +LogicalFontInstance* ImplFontCache::GetFontInstance( PhysicalFontCollection* pFontList, FontSelectPattern& aFontSelData ) { // check if a directly matching logical font instance is already cached, // the most recently used font usually has a hit rate of >50% - ImplFontEntry *pEntry = nullptr; + LogicalFontInstance *pFontInstance = nullptr; PhysicalFontFamily* pFontFamily = nullptr; IFSD_Equal aIFSD_Equal; if( mpFirstEntry && aIFSD_Equal( aFontSelData, mpFirstEntry->maFontSelData ) ) - pEntry = mpFirstEntry; + pFontInstance = mpFirstEntry; else { FontInstanceList::iterator it = maFontInstanceList.find( aFontSelData ); if( it != maFontInstanceList.end() ) - pEntry = (*it).second; + pFontInstance = (*it).second; } - if( !pEntry ) // no direct cache hit + if( !pFontInstance ) // no direct cache hit { // find the best matching logical font family and update font selector accordingly pFontFamily = pFontList->FindFontFamilyByFont( aFontSelData ); @@ -180,13 +180,13 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, if( it != maFontInstanceList.end() ) { // we have an indirect cache hit - pEntry = (*it).second; + pFontInstance = (*it).second; } } PhysicalFontFace* pFontData = nullptr; - if (!pEntry && pFontFamily)// no cache hit => find the best matching physical font face + if (!pFontInstance && pFontFamily)// no cache hit => find the best matching physical font face { bool bOrigWasSymbol = aFontSelData.mpFontData && aFontSelData.mpFontData->IsSymbolFont(); pFontData = pFontFamily->FindBestFontFace( aFontSelData ); @@ -203,51 +203,51 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, // wasn't a candidate FontInstanceList::iterator it = maFontInstanceList.find( aFontSelData ); if( it != maFontInstanceList.end() ) - pEntry = (*it).second; + pFontInstance = (*it).second; } } - if( pEntry ) // cache hit => use existing font instance + if( pFontInstance ) // cache hit => use existing font instance { // increase the font instance's reference count - Acquire(pEntry); + Acquire(pFontInstance); } - if (!pEntry && pFontData)// still no cache hit => create a new font instance + if (!pFontInstance && pFontData)// still no cache hit => create a new font instance { // create a new logical font instance from this physical font face - pEntry = pFontData->CreateFontInstance( aFontSelData ); - pEntry->m_pFontCache = this; + pFontInstance = pFontData->CreateFontInstance( aFontSelData ); + pFontInstance->m_pFontCache = this; // if we're subtituting from or to a symbol font we may need a symbol // conversion table if( pFontData->IsSymbolFont() || aFontSelData.IsSymbolFont() ) { if( aFontSelData.maTargetName != aFontSelData.maSearchName ) - pEntry->mpConversion = ConvertChar::GetRecodeData( aFontSelData.maTargetName, aFontSelData.maSearchName ); + pFontInstance->mpConversion = ConvertChar::GetRecodeData( aFontSelData.maTargetName, aFontSelData.maSearchName ); } #ifdef MACOSX //It might be better to dig out the font version of the target font //to see if it's a modern re-coded apple symbol font in case that //font shows up on a different platform - if (!pEntry->mpConversion && + if (!pFontInstance->mpConversion && aFontSelData.maTargetName.equalsIgnoreAsciiCase("symbol") && aFontSelData.maSearchName.equalsIgnoreAsciiCase("symbol")) { - pEntry->mpConversion = ConvertChar::GetRecodeData( "Symbol", "AppleSymbol" ); + pFontInstance->mpConversion = ConvertChar::GetRecodeData( "Symbol", "AppleSymbol" ); } #endif // add the new entry to the cache - maFontInstanceList[ aFontSelData ] = pEntry; + maFontInstanceList[ aFontSelData ] = pFontInstance; } - mpFirstEntry = pEntry; - return pEntry; + mpFirstEntry = pFontInstance; + return pFontInstance; } -ImplFontEntry* ImplFontCache::GetGlyphFallbackFont( PhysicalFontCollection* pFontCollection, +LogicalFontInstance* ImplFontCache::GetGlyphFallbackFont( PhysicalFontCollection* pFontCollection, FontSelectPattern& rFontSelData, int nFallbackLevel, OUString& rMissingCodes ) { // get a candidate font for glyph fallback @@ -278,24 +278,24 @@ ImplFontEntry* ImplFontCache::GetGlyphFallbackFont( PhysicalFontCollection* pFon rFontSelData.maSearchName.clear(); } - ImplFontEntry* pFallbackFont = GetFontEntry( pFontCollection, rFontSelData ); + LogicalFontInstance* pFallbackFont = GetFontInstance( pFontCollection, rFontSelData ); return pFallbackFont; } -void ImplFontCache::Acquire(ImplFontEntry* pEntry) +void ImplFontCache::Acquire(LogicalFontInstance* pFontInstance) { - assert(pEntry->m_pFontCache == this); + assert(pFontInstance->m_pFontCache == this); - if (0 == pEntry->mnRefCount++) + if (0 == pFontInstance->mnRefCount++) --mnRef0Count; } -void ImplFontCache::Release(ImplFontEntry* pEntry) +void ImplFontCache::Release(LogicalFontInstance* pFontInstance) { static const int FONTCACHE_MAX = getenv("LO_TESTNAME") ? 1 : 50; - assert(pEntry->mnRefCount > 0 && "ImplFontCache::Release() - font refcount underflow"); - if( --pEntry->mnRefCount > 0 ) + assert(pFontInstance->mnRefCount > 0 && "ImplFontCache::Release() - font refcount underflow"); + if( --pFontInstance->mnRefCount > 0 ) return; if (++mnRef0Count < FONTCACHE_MAX) @@ -308,7 +308,7 @@ void ImplFontCache::Release(ImplFontEntry* pEntry) while( it_next != maFontInstanceList.end() ) { FontInstanceList::iterator it = it_next++; - ImplFontEntry* pFontEntry = (*it).second; + LogicalFontInstance* pFontEntry = (*it).second; if( pFontEntry->mnRefCount > 0 ) continue; @@ -331,7 +331,7 @@ int ImplFontCache::CountUnreferencedEntries() const for (FontInstanceList::const_iterator it = maFontInstanceList.begin(); it != maFontInstanceList.end(); ++it) { - const ImplFontEntry* pFontEntry = it->second; + const LogicalFontInstance* pFontEntry = it->second; if (pFontEntry->mnRefCount > 0) continue; ++nCount; @@ -347,7 +347,7 @@ void ImplFontCache::Invalidate() FontInstanceList::iterator it = maFontInstanceList.begin(); for(; it != maFontInstanceList.end(); ++it ) { - ImplFontEntry* pFontEntry = (*it).second; + LogicalFontInstance* pFontEntry = (*it).second; if( pFontEntry->mnRefCount > 0 ) continue; diff --git a/vcl/source/font/fontentry.cxx b/vcl/source/font/fontinstance.cxx index ebcf55639c8f..2da9b38c7903 100644 --- a/vcl/source/font/fontentry.cxx +++ b/vcl/source/font/fontinstance.cxx @@ -33,7 +33,7 @@ #include "impfont.hxx" #include "outdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "outdev.h" @@ -63,7 +63,7 @@ using namespace ::com::sun::star::uno; using namespace ::rtl; using namespace ::utl; -// extend std namespace to add custom hash needed for ImplFontEntry +// extend std namespace to add custom hash needed for LogicalFontInstance namespace std { @@ -79,7 +79,7 @@ namespace std } -ImplFontEntry::ImplFontEntry( const FontSelectPattern& rFontSelData ) +LogicalFontInstance::LogicalFontInstance( const FontSelectPattern& rFontSelData ) : m_pFontCache(nullptr) , maFontSelData( rFontSelData ) , maFontAttributes( rFontSelData ) @@ -92,23 +92,23 @@ ImplFontEntry::ImplFontEntry( const FontSelectPattern& rFontSelData ) , mbInit( false ) , mpUnicodeFallbackList( nullptr ) { - maFontSelData.mpFontEntry = this; + maFontSelData.mpFontInstance = this; } -ImplFontEntry::~ImplFontEntry() +LogicalFontInstance::~LogicalFontInstance() { delete mpUnicodeFallbackList; m_pFontCache = nullptr; } -void ImplFontEntry::AddFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, const OUString& rFontName ) +void LogicalFontInstance::AddFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, const OUString& rFontName ) { if( !mpUnicodeFallbackList ) mpUnicodeFallbackList = new UnicodeFallbackList; (*mpUnicodeFallbackList)[ std::pair< sal_UCS4, FontWeight >(cChar,eWeight) ] = rFontName; } -bool ImplFontEntry::GetFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, OUString* pFontName ) const +bool LogicalFontInstance::GetFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, OUString* pFontName ) const { if( !mpUnicodeFallbackList ) return false; @@ -121,7 +121,7 @@ bool ImplFontEntry::GetFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, O return true; } -void ImplFontEntry::IgnoreFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, const OUString& rFontName ) +void LogicalFontInstance::IgnoreFallbackForUnicode( sal_UCS4 cChar, FontWeight eWeight, const OUString& rFontName ) { UnicodeFallbackList::iterator it = mpUnicodeFallbackList->find( std::pair< sal_UCS4,FontWeight >(cChar,eWeight) ); if( it == mpUnicodeFallbackList->end() ) diff --git a/vcl/source/font/fontselect.cxx b/vcl/source/font/fontselect.cxx index 5bcc3e44db11..e1b875734a42 100644 --- a/vcl/source/font/fontselect.cxx +++ b/vcl/source/font/fontselect.cxx @@ -33,7 +33,7 @@ #include "impfont.hxx" #include "outdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "outdev.h" @@ -67,7 +67,7 @@ FontSelectPattern::FontSelectPattern( const vcl::Font& rFont, const OUString& rSearchName, const Size& rSize, float fExactHeight) : FontSelectPatternAttributes(rFont, rSearchName, rSize, fExactHeight) , mpFontData( nullptr ) - , mpFontEntry( nullptr ) + , mpFontInstance( nullptr ) { } @@ -93,7 +93,7 @@ FontSelectPattern::FontSelectPattern( const PhysicalFontFace& rFontData, const Size& rSize, float fExactHeight, int nOrientation, bool bVertical ) : FontSelectPatternAttributes(rFontData, rSize, fExactHeight, nOrientation, bVertical) , mpFontData( &rFontData ) - , mpFontEntry( NULL ) + , mpFontInstance( NULL ) { } #endif diff --git a/vcl/source/gdi/embeddedfontshelper.cxx b/vcl/source/gdi/embeddedfontshelper.cxx index 6f52df9ae4a1..7b08e92bcd75 100644 --- a/vcl/source/gdi/embeddedfontshelper.cxx +++ b/vcl/source/gdi/embeddedfontshelper.cxx @@ -17,7 +17,7 @@ #include "fontsubset.hxx" #include "outdev.h" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontCollection.hxx" #include "salgdi.hxx" #include "sft.hxx" diff --git a/vcl/source/gdi/font.cxx b/vcl/source/gdi/font.cxx index 58ecc0aa2843..d6b561efb0cf 100644 --- a/vcl/source/gdi/font.cxx +++ b/vcl/source/gdi/font.cxx @@ -27,7 +27,7 @@ #include "vcl/font.hxx" #include "impfont.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "sft.hxx" diff --git a/vcl/source/gdi/impfont.cxx b/vcl/source/gdi/impfont.cxx index ade5b851e180..4061a4004079 100644 --- a/vcl/source/gdi/impfont.cxx +++ b/vcl/source/gdi/impfont.cxx @@ -16,7 +16,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include <vcl/fontcharmap.hxx> -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <impfont.hxx> #include <vector> diff --git a/vcl/source/gdi/pdffontcache.cxx b/vcl/source/gdi/pdffontcache.cxx index 8aa0ad24e607..9c1b271b65ba 100644 --- a/vcl/source/gdi/pdffontcache.cxx +++ b/vcl/source/gdi/pdffontcache.cxx @@ -21,7 +21,7 @@ #include <sal/types.h> -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "PhysicalFontFace.hxx" #include "salgdi.hxx" #include "sallayout.hxx" diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 14cfa6c66a17..2159bc6c3e32 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -2265,9 +2265,9 @@ ImplPdfBuiltinFontData::ImplPdfBuiltinFontData( const PDFWriterImpl::BuiltinFont mrBuiltin( rBuiltin ) {} -ImplFontEntry* ImplPdfBuiltinFontData::CreateFontInstance( FontSelectPattern& rFSD ) const +LogicalFontInstance* ImplPdfBuiltinFontData::CreateFontInstance( FontSelectPattern& rFSD ) const { - ImplFontEntry* pEntry = new ImplFontEntry( rFSD ); + LogicalFontInstance* pEntry = new LogicalFontInstance( rFSD ); return pEntry; } @@ -8379,7 +8379,7 @@ sal_Int32 PDFWriterImpl::getSystemFont( const vcl::Font& i_rFont ) getReferenceDevice()->SetFont( i_rFont ); getReferenceDevice()->ImplNewFont(); - const PhysicalFontFace* pDevFont = m_pReferenceDevice->mpFontEntry->maFontSelData.mpFontData; + const PhysicalFontFace* pDevFont = m_pReferenceDevice->mpFontInstance->maFontSelData.mpFontData; sal_Int32 nFontID = 0; FontEmbedData::iterator it = m_aSystemFonts.find( pDevFont ); if( it != m_aSystemFonts.end() ) @@ -8411,7 +8411,7 @@ bool PDFWriterImpl::registerGlyphs( int nGlyphs, if (!pGraphics) return false; - const PhysicalFontFace* pDevFont = m_pReferenceDevice->mpFontEntry->maFontSelData.mpFontData; + const PhysicalFontFace* pDevFont = m_pReferenceDevice->mpFontInstance->maFontSelData.mpFontData; sal_Ucs* pCurUnicode = pUnicodes; for( int i = 0; i < nGlyphs; pCurUnicode += pUnicodesPerGlyph[i] , i++ ) { @@ -8620,7 +8620,7 @@ void PDFWriterImpl::drawShadow( SalLayout& rLayout, const OUString& rText, bool setOverlineColor( rFont.GetColor() ); updateGraphicsState(); - long nOff = 1 + ((m_pReferenceDevice->mpFontEntry->mnLineHeight-24)/24); + long nOff = 1 + ((m_pReferenceDevice->mpFontInstance->mnLineHeight-24)/24); if( rFont.IsOutline() ) nOff++; rLayout.DrawBase() += Point( nOff, nOff ); @@ -8846,7 +8846,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool int nMinCharPos = 0, nMaxCharPos = rText.getLength()-1; double fXScale = 1.0; double fSkew = 0.0; - sal_Int32 nPixelFontHeight = m_pReferenceDevice->mpFontEntry->maFontSelData.mnHeight; + sal_Int32 nPixelFontHeight = m_pReferenceDevice->mpFontInstance->maFontSelData.mnHeight; TextAlign eAlign = m_aCurrentPDFState.m_aFont.GetAlign(); // transform font height back to current units @@ -8870,8 +8870,8 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool // perform artificial italics if necessary if( ( m_aCurrentPDFState.m_aFont.GetItalic() == ITALIC_NORMAL || m_aCurrentPDFState.m_aFont.GetItalic() == ITALIC_OBLIQUE ) && - !( m_pReferenceDevice->mpFontEntry->maFontSelData.mpFontData->GetSlantType() == ITALIC_NORMAL || - m_pReferenceDevice->mpFontEntry->maFontSelData.mpFontData->GetSlantType() == ITALIC_OBLIQUE ) + !( m_pReferenceDevice->mpFontInstance->maFontSelData.mpFontData->GetSlantType() == ITALIC_NORMAL || + m_pReferenceDevice->mpFontInstance->maFontSelData.mpFontData->GetSlantType() == ITALIC_OBLIQUE ) ) { fSkew = M_PI/12.0; @@ -8898,8 +8898,8 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool bool bPop = false; bool bABold = false; // artificial bold necessary ? - if( m_pReferenceDevice->mpFontEntry->maFontSelData.mpFontData->GetWeight() <= WEIGHT_MEDIUM && - m_pReferenceDevice->mpFontEntry->maFontSelData.GetWeight() > WEIGHT_MEDIUM ) + if( m_pReferenceDevice->mpFontInstance->maFontSelData.mpFontData->GetWeight() <= WEIGHT_MEDIUM && + m_pReferenceDevice->mpFontInstance->maFontSelData.GetWeight() > WEIGHT_MEDIUM ) { if( ! bPop ) aLine.append( "q " ); @@ -9152,7 +9152,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool nEmphWidth, nEmphMark, m_pReferenceDevice->ImplDevicePixelToLogicWidth(nEmphHeight), - m_pReferenceDevice->mpFontEntry->mnOrientation ); + m_pReferenceDevice->mpFontInstance->mnOrientation ); if ( bEmphPolyLine ) { setLineColor( m_aCurrentPDFState.m_aFont.GetColor() ); @@ -9168,18 +9168,18 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool Point aOffset = Point(0,0); if ( nEmphMark & EMPHASISMARK_POS_BELOW ) - aOffset.Y() += m_pReferenceDevice->mpFontEntry->maFontAttributes.GetDescent() + nEmphYOff; + aOffset.Y() += m_pReferenceDevice->mpFontInstance->maFontAttributes.GetDescent() + nEmphYOff; else - aOffset.Y() -= m_pReferenceDevice->mpFontEntry->maFontAttributes.GetAscent() + nEmphYOff; + aOffset.Y() -= m_pReferenceDevice->mpFontInstance->maFontAttributes.GetAscent() + nEmphYOff; long nEmphWidth2 = nEmphWidth / 2; long nEmphHeight2 = nEmphHeight / 2; aOffset += Point( nEmphWidth2, nEmphHeight2 ); if ( eAlign == ALIGN_BOTTOM ) - aOffset.Y() -= m_pReferenceDevice->mpFontEntry->maFontAttributes.GetDescent(); + aOffset.Y() -= m_pReferenceDevice->mpFontInstance->maFontAttributes.GetDescent(); else if ( eAlign == ALIGN_TOP ) - aOffset.Y() += m_pReferenceDevice->mpFontEntry->maFontAttributes.GetAscent(); + aOffset.Y() += m_pReferenceDevice->mpFontInstance->maFontAttributes.GetAscent(); for( int nStart = 0;;) { @@ -9487,8 +9487,8 @@ void PDFWriterImpl::drawLine( const Point& rStart, const Point& rStop, const Lin void PDFWriterImpl::drawWaveTextLine( OStringBuffer& aLine, long nWidth, FontUnderline eTextLine, Color aColor, bool bIsAbove ) { - // note: units in pFontEntry are ref device pixel - ImplFontEntry* pFontEntry = m_pReferenceDevice->mpFontEntry; + // note: units in pFontInstance are ref device pixel + LogicalFontInstance* pFontInstance = m_pReferenceDevice->mpFontInstance; long nLineHeight = 0; long nLinePos = 0; @@ -9497,17 +9497,17 @@ void PDFWriterImpl::drawWaveTextLine( OStringBuffer& aLine, long nWidth, FontUnd if ( bIsAbove ) { - if ( !pFontEntry->maFontAttributes.GetAboveWavelineUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetAboveWavelineUnderlineSize() ) m_pReferenceDevice->ImplInitAboveTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetAboveWavelineUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetAboveWavelineUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetAboveWavelineUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetAboveWavelineUnderlineOffset() ); } else { - if ( !pFontEntry->maFontAttributes.GetWavelineUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetWavelineUnderlineSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetWavelineUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetWavelineUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetWavelineUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetWavelineUnderlineOffset() ); } if ( (eTextLine == UNDERLINE_SMALLWAVE) && (nLineHeight > 3) ) nLineHeight = 3; @@ -9557,8 +9557,8 @@ void PDFWriterImpl::drawWaveTextLine( OStringBuffer& aLine, long nWidth, FontUnd void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, FontUnderline eTextLine, Color aColor, bool bIsAbove ) { - // note: units in pFontEntry are ref device pixel - ImplFontEntry* pFontEntry = m_pReferenceDevice->mpFontEntry; + // note: units in pFontInstance are ref device pixel + LogicalFontInstance* pFontInstance = m_pReferenceDevice->mpFontInstance; long nLineHeight = 0; long nLinePos = 0; long nLinePos2 = 0; @@ -9576,17 +9576,17 @@ void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, Fon case UNDERLINE_DASHDOTDOT: if ( bIsAbove ) { - if ( !pFontEntry->maFontAttributes.GetAboveUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetAboveUnderlineSize() ) m_pReferenceDevice->ImplInitAboveTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetAboveUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetAboveUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetAboveUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetAboveUnderlineOffset() ); } else { - if ( !pFontEntry->maFontAttributes.GetUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetUnderlineSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetUnderlineOffset() ); } break; case UNDERLINE_BOLD: @@ -9597,36 +9597,36 @@ void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, Fon case UNDERLINE_BOLDDASHDOTDOT: if ( bIsAbove ) { - if ( !pFontEntry->maFontAttributes.GetAboveBoldUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetAboveBoldUnderlineSize() ) m_pReferenceDevice->ImplInitAboveTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetAboveBoldUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetAboveBoldUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetAboveBoldUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetAboveBoldUnderlineOffset() ); } else { - if ( !pFontEntry->maFontAttributes.GetBoldUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetBoldUnderlineSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetBoldUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetBoldUnderlineOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetBoldUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetBoldUnderlineOffset() ); nLinePos += nLineHeight/2; } break; case UNDERLINE_DOUBLE: if ( bIsAbove ) { - if ( !pFontEntry->maFontAttributes.GetAboveDoubleUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetAboveDoubleUnderlineSize() ) m_pReferenceDevice->ImplInitAboveTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetAboveDoubleUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetAboveDoubleUnderlineOffset1() ); - nLinePos2 = HCONV( pFontEntry->maFontAttributes.GetAboveDoubleUnderlineOffset2() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetAboveDoubleUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetAboveDoubleUnderlineOffset1() ); + nLinePos2 = HCONV( pFontInstance->maFontAttributes.GetAboveDoubleUnderlineOffset2() ); } else { - if ( !pFontEntry->maFontAttributes.GetDoubleUnderlineSize() ) + if ( !pFontInstance->maFontAttributes.GetDoubleUnderlineSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetDoubleUnderlineSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetDoubleUnderlineOffset1() ); - nLinePos2 = HCONV( pFontEntry->maFontAttributes.GetDoubleUnderlineOffset2() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetDoubleUnderlineSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetDoubleUnderlineOffset1() ); + nLinePos2 = HCONV( pFontInstance->maFontAttributes.GetDoubleUnderlineOffset2() ); } break; default: @@ -9727,8 +9727,8 @@ void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, Fon void PDFWriterImpl::drawStrikeoutLine( OStringBuffer& aLine, long nWidth, FontStrikeout eStrikeout, Color aColor ) { - // note: units in pFontEntry are ref device pixel - ImplFontEntry* pFontEntry = m_pReferenceDevice->mpFontEntry; + // note: units in pFontInstance are ref device pixel + LogicalFontInstance* pFontInstance = m_pReferenceDevice->mpFontInstance; long nLineHeight = 0; long nLinePos = 0; long nLinePos2 = 0; @@ -9739,23 +9739,23 @@ void PDFWriterImpl::drawStrikeoutLine( OStringBuffer& aLine, long nWidth, FontSt switch ( eStrikeout ) { case STRIKEOUT_SINGLE: - if ( !pFontEntry->maFontAttributes.GetStrikeoutSize() ) + if ( !pFontInstance->maFontAttributes.GetStrikeoutSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetStrikeoutSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetStrikeoutOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetStrikeoutSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetStrikeoutOffset() ); break; case STRIKEOUT_BOLD: - if ( !pFontEntry->maFontAttributes.GetBoldStrikeoutSize() ) + if ( !pFontInstance->maFontAttributes.GetBoldStrikeoutSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetBoldStrikeoutSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetBoldStrikeoutOffset() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetBoldStrikeoutSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetBoldStrikeoutOffset() ); break; case STRIKEOUT_DOUBLE: - if ( !pFontEntry->maFontAttributes.GetDoubleStrikeoutSize() ) + if ( !pFontInstance->maFontAttributes.GetDoubleStrikeoutSize() ) m_pReferenceDevice->ImplInitTextLineSize(); - nLineHeight = HCONV( pFontEntry->maFontAttributes.GetDoubleStrikeoutSize() ); - nLinePos = HCONV( pFontEntry->maFontAttributes.GetDoubleStrikeoutOffset1() ); - nLinePos2 = HCONV( pFontEntry->maFontAttributes.GetDoubleStrikeoutOffset2() ); + nLineHeight = HCONV( pFontInstance->maFontAttributes.GetDoubleStrikeoutSize() ); + nLinePos = HCONV( pFontInstance->maFontAttributes.GetDoubleStrikeoutOffset1() ); + nLinePos2 = HCONV( pFontInstance->maFontAttributes.GetDoubleStrikeoutOffset2() ); break; default: break; @@ -9824,11 +9824,11 @@ void PDFWriterImpl::drawStrikeoutChar( const Point& rPos, long nWidth, FontStrik aRect.Bottom() = rPos.Y()+aRefDevFontMetric.GetDescent(); aRect.Top() = rPos.Y()-aRefDevFontMetric.GetAscent(); - ImplFontEntry* pFontEntry = m_pReferenceDevice->mpFontEntry; - if (pFontEntry->mnOrientation) + LogicalFontInstance* pFontInstance = m_pReferenceDevice->mpFontInstance; + if (pFontInstance->mnOrientation) { tools::Polygon aPoly( aRect ); - aPoly.Rotate( rPos, pFontEntry->mnOrientation); + aPoly.Rotate( rPos, pFontInstance->mnOrientation); aRect = aPoly.GetBoundRect(); } @@ -9858,8 +9858,8 @@ void PDFWriterImpl::drawTextLine( const Point& rPos, long nWidth, FontStrikeout MARK( "drawTextLine" ); updateGraphicsState(); - // note: units in pFontEntry are ref device pixel - ImplFontEntry* pFontEntry = m_pReferenceDevice->mpFontEntry; + // note: units in pFontInstance are ref device pixel + LogicalFontInstance* pFontInstance = m_pReferenceDevice->mpFontInstance; Color aUnderlineColor = m_aCurrentPDFState.m_aTextLineColor; Color aOverlineColor = m_aCurrentPDFState.m_aOverlineColor; Color aStrikeoutColor = m_aCurrentPDFState.m_aFont.GetColor(); @@ -9876,9 +9876,9 @@ void PDFWriterImpl::drawTextLine( const Point& rPos, long nWidth, FontStrikeout Point aPos( rPos ); TextAlign eAlign = m_aCurrentPDFState.m_aFont.GetAlign(); if( eAlign == ALIGN_TOP ) - aPos.Y() += HCONV( pFontEntry->maFontAttributes.GetAscent() ); + aPos.Y() += HCONV( pFontInstance->maFontAttributes.GetAscent() ); else if( eAlign == ALIGN_BOTTOM ) - aPos.Y() -= HCONV( pFontEntry->maFontAttributes.GetDescent() ); + aPos.Y() -= HCONV( pFontInstance->maFontAttributes.GetDescent() ); OStringBuffer aLine( 512 ); // save GS diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx index 0e8ab54a5431..4e4ff4731549 100644 --- a/vcl/source/gdi/pdfwriter_impl.hxx +++ b/vcl/source/gdi/pdfwriter_impl.hxx @@ -1266,7 +1266,7 @@ public: const PDFWriterImpl::BuiltinFont& GetBuiltinFont() const { return mrBuiltin; } virtual PhysicalFontFace* Clone() const override { return new ImplPdfBuiltinFontData(*this); } - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const override; + virtual LogicalFontInstance* CreateFontInstance( FontSelectPattern& ) const override; virtual sal_IntPtr GetFontId() const override { return reinterpret_cast<sal_IntPtr>(&mrBuiltin); } }; diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx index 38d9c71d369e..fa3a0659b492 100644 --- a/vcl/source/gdi/print.cxx +++ b/vcl/source/gdi/print.cxx @@ -630,10 +630,10 @@ void Printer::ImplReleaseFonts() mbNewFont = true; mbInitFont = true; - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) @@ -1008,10 +1008,10 @@ void Printer::dispose() // OutputDevice Dtor is trying the same thing; that why we need to set // the FontEntry to NULL here // TODO: consolidate duplicate cleanup by Printer and OutputDevice - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) { @@ -1162,10 +1162,10 @@ bool Printer::SetPrinterProps( const Printer* pPrinter ) { ReleaseGraphics(); pSVData->mpDefInst->DestroyInfoPrinter( mpInfoPrinter ); - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) { @@ -1205,10 +1205,10 @@ bool Printer::SetPrinterProps( const Printer* pPrinter ) { pSVData->mpDefInst->DestroyInfoPrinter( mpInfoPrinter ); - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) { @@ -1804,18 +1804,18 @@ void Printer::InitFont() const { DBG_TESTSOLARMUTEX(); - if (!mpFontEntry) + if (!mpFontInstance) return; if ( mbInitFont ) { // select font in the device layers - mpFontEntry->mnSetFontFlags = mpGraphics->SetFont( &(mpFontEntry->maFontSelData), 0 ); + mpFontInstance->mnSetFontFlags = mpGraphics->SetFont( &(mpFontInstance->maFontSelData), 0 ); mbInitFont = false; } } -void Printer::SetFontOrientation( ImplFontEntry* const pFontEntry ) const +void Printer::SetFontOrientation( LogicalFontInstance* const pFontEntry ) const { pFontEntry->mnOrientation = pFontEntry->maFontAttributes.GetOrientation(); } diff --git a/vcl/source/gdi/textlayout.cxx b/vcl/source/gdi/textlayout.cxx index ab9d69e2d215..872b0bdcadbc 100644 --- a/vcl/source/gdi/textlayout.cxx +++ b/vcl/source/gdi/textlayout.cxx @@ -20,7 +20,7 @@ #include "vcl/ctrl.hxx" #include "vcl/outdev.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "textlayout.hxx" #include <com/sun/star/i18n/ScriptDirection.hpp> diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx index 4f493b4e9d47..abd8a2ed4e0a 100644 --- a/vcl/source/gdi/virdev.cxx +++ b/vcl/source/gdi/virdev.cxx @@ -509,10 +509,10 @@ void VirtualDevice::ImplSetReferenceDevice( RefDevMode i_eRefDevMode, sal_Int32 // the reference device should have only scalable fonts // => clean up the original font lists before getting new ones - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) { @@ -563,8 +563,8 @@ long VirtualDevice::GetFontExtLeading() const return 0; #endif - ImplFontEntry* pEntry = mpFontEntry; - ImplFontAttributes* pFontAttributes = &(pEntry->maFontAttributes); + LogicalFontInstance* pFontInstance = mpFontInstance; + ImplFontAttributes* pFontAttributes = &(pFontInstance->maFontAttributes); return pFontAttributes->GetExternalLeading(); } diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx index 6a0faa965dad..5032cbbc293b 100644 --- a/vcl/source/outdev/font.cxx +++ b/vcl/source/outdev/font.cxx @@ -33,7 +33,7 @@ #include "impfont.hxx" #include "outdata.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "fontattributes.hxx" #include "outdev.h" @@ -189,8 +189,8 @@ FontMetric OutputDevice::GetFontMetric() const if( mbNewFont && !ImplNewFont() ) return aMetric; - ImplFontEntry* pEntry = mpFontEntry; - ImplFontAttributes* pFontAttributes = &(pEntry->maFontAttributes); + LogicalFontInstance* pFontInstance = mpFontInstance; + ImplFontAttributes* pFontAttributes = &(pFontInstance->maFontAttributes); // prepare metric aMetric.Font::operator=( maFont ); @@ -205,11 +205,11 @@ FontMetric OutputDevice::GetFontMetric() const aMetric.SetWeight( pFontAttributes->GetWeight() ); aMetric.SetItalic( pFontAttributes->GetSlantType() ); aMetric.SetWidthType( pFontAttributes->GetWidthType() ); - if ( pEntry->mnOwnOrientation ) - aMetric.SetOrientation( pEntry->mnOwnOrientation ); + if ( pFontInstance->mnOwnOrientation ) + aMetric.SetOrientation( pFontInstance->mnOwnOrientation ); else aMetric.SetOrientation( pFontAttributes->GetOrientation() ); - if( !pEntry->maFontAttributes.IsKernable() ) + if( !pFontInstance->maFontAttributes.IsKernable() ) aMetric.SetKerning( maFont.GetKerning() & ~FontKerning::FontSpecific ); // set remaining metric fields @@ -253,7 +253,7 @@ bool OutputDevice::GetFontCharMap( FontCharMapPtr& rFontCharMap ) const ImplNewFont(); if( mbInitFont ) InitFont(); - if( !mpFontEntry ) + if( !mpFontInstance ) return false; FontCharMapPtr pFontCharMap ( mpGraphics->GetFontCharMap() ); @@ -280,7 +280,7 @@ bool OutputDevice::GetFontCapabilities( vcl::FontCapabilities& rFontCapabilities ImplNewFont(); if( mbInitFont ) InitFont(); - if( !mpFontEntry ) + if( !mpFontInstance ) return false; return mpGraphics->GetFontCapabilities(rFontCapabilities); @@ -485,8 +485,8 @@ FontEmphasisMark OutputDevice::ImplGetEmphasisMarkStyle( const vcl::Font& rFont long OutputDevice::GetFontExtLeading() const { - ImplFontEntry* pEntry = mpFontEntry; - ImplFontAttributes* pFontAttributes = &(pEntry->maFontAttributes); + LogicalFontInstance* pFontInstance = mpFontInstance; + ImplFontAttributes* pFontAttributes = &(pFontInstance->maFontAttributes); return pFontAttributes->GetExternalLeading(); } @@ -494,10 +494,10 @@ long OutputDevice::GetFontExtLeading() const void OutputDevice::ImplClearFontData( const bool bNewFontLists ) { // the currently selected logical font is no longer needed - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } mbInitFont = true; @@ -921,13 +921,13 @@ vcl::Font OutputDevice::GetDefaultFont( DefaultFontType nType, LanguageType eLan // get the name of the first available font float fExactHeight = static_cast<float>(aSize.Height()); - ImplFontEntry* pEntry = pOutDev->mpFontCache->GetFontEntry( pOutDev->mpFontCollection, aFont, aSize, fExactHeight ); - if (pEntry) + LogicalFontInstance* pFontInstance = pOutDev->mpFontCache->GetFontInstance( pOutDev->mpFontCollection, aFont, aSize, fExactHeight ); + if (pFontInstance) { - if( pEntry->maFontSelData.mpFontData ) - aFont.SetName( pEntry->maFontSelData.mpFontData->GetFamilyName() ); + if( pFontInstance->maFontSelData.mpFontData ) + aFont.SetName( pFontInstance->maFontSelData.mpFontData->GetFamilyName() ); else - aFont.SetName( pEntry->maFontSelData.maTargetName ); + aFont.SetName( pFontInstance->maFontSelData.maTargetName ); } } } @@ -1041,7 +1041,7 @@ void OutputDevice::InitFont() const { DBG_TESTSOLARMUTEX(); - if (!mpFontEntry) + if (!mpFontInstance) return; if ( mbInitFont ) @@ -1052,12 +1052,12 @@ void OutputDevice::InitFont() const { const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); bNonAntialiased |= bool(rStyleSettings.GetDisplayOptions() & DisplayOptions::AADisable); - bNonAntialiased |= (int(rStyleSettings.GetAntialiasingMinPixelHeight()) > mpFontEntry->maFontSelData.mnHeight); + bNonAntialiased |= (int(rStyleSettings.GetAntialiasingMinPixelHeight()) > mpFontInstance->maFontSelData.mnHeight); } - mpFontEntry->maFontSelData.mbNonAntialiased = bNonAntialiased; + mpFontInstance->maFontSelData.mbNonAntialiased = bNonAntialiased; // select font in the device layers - mpFontEntry->mnSetFontFlags = mpGraphics->SetFont( &(mpFontEntry->maFontSelData), 0 ); + mpFontInstance->mnSetFontFlags = mpGraphics->SetFont( &(mpFontInstance->maFontSelData), 0 ); mbInitFont = false; } } @@ -1106,22 +1106,22 @@ bool OutputDevice::ImplNewFont() const aSize.Width() = 1; // get font entry - ImplFontEntry* pOldEntry = mpFontEntry; - mpFontEntry = mpFontCache->GetFontEntry( mpFontCollection, maFont, aSize, fExactHeight ); - if( pOldEntry ) - mpFontCache->Release( pOldEntry ); + LogicalFontInstance* pOldFontInstance = mpFontInstance; + mpFontInstance = mpFontCache->GetFontInstance( mpFontCollection, maFont, aSize, fExactHeight ); + if( pOldFontInstance ) + mpFontCache->Release( pOldFontInstance ); - ImplFontEntry* pFontEntry = mpFontEntry; + LogicalFontInstance* pFontEntry = mpFontInstance; if (!pFontEntry) { - SAL_WARN("vcl.gdi", "OutputDevice::ImplNewFont(): no ImplFontEntry, no Font"); + SAL_WARN("vcl.gdi", "OutputDevice::ImplNewFont(): no LogicalFontInstance, no Font"); return false; } // mark when lower layers need to get involved mbNewFont = false; - if( pFontEntry != pOldEntry ) + if( pFontEntry != pOldFontInstance ) mbInitFont = true; // select font when it has not been initialized yet @@ -1233,7 +1233,7 @@ bool OutputDevice::ImplNewFont() const return true; } -void OutputDevice::SetFontOrientation( ImplFontEntry* const pFontEntry ) const +void OutputDevice::SetFontOrientation( LogicalFontInstance* const pFontEntry ) const { if( pFontEntry->maFontSelData.mnOrientation && !pFontEntry->maFontAttributes.GetOrientation() ) { @@ -1316,7 +1316,7 @@ void OutputDevice::ImplDrawEmphasisMarks( SalLayout& rSalLayout ) aRect1, aRect2, nEmphasisYOff, nEmphasisWidth, nEmphasisMark, - nEmphasisHeight, mpFontEntry->mnOrientation ); + nEmphasisHeight, mpFontInstance->mnOrientation ); if ( bPolyLine ) { @@ -1332,9 +1332,9 @@ void OutputDevice::ImplDrawEmphasisMarks( SalLayout& rSalLayout ) Point aOffset = Point(0,0); if ( nEmphasisMark & EMPHASISMARK_POS_BELOW ) - aOffset.Y() += mpFontEntry->maFontAttributes.GetDescent() + nEmphasisYOff; + aOffset.Y() += mpFontInstance->maFontAttributes.GetDescent() + nEmphasisYOff; else - aOffset.Y() -= mpFontEntry->maFontAttributes.GetAscent() + nEmphasisYOff; + aOffset.Y() -= mpFontInstance->maFontAttributes.GetAscent() + nEmphasisYOff; long nEmphasisWidth2 = nEmphasisWidth / 2; long nEmphasisHeight2 = nEmphasisHeight / 2; @@ -1355,10 +1355,10 @@ void OutputDevice::ImplDrawEmphasisMarks( SalLayout& rSalLayout ) { Point aAdjPoint = aOffset; aAdjPoint.X() += aRectangle.Left() + (aRectangle.GetWidth() - nEmphasisWidth) / 2; - if ( mpFontEntry->mnOrientation ) + if ( mpFontInstance->mnOrientation ) { Point aOriginPt(0, 0); - aOriginPt.RotateAround( aAdjPoint.X(), aAdjPoint.Y(), mpFontEntry->mnOrientation ); + aOriginPt.RotateAround( aAdjPoint.X(), aAdjPoint.Y(), mpFontInstance->mnOrientation ); } aOutPoint += aAdjPoint; aOutPoint -= Point( nEmphasisWidth2, nEmphasisHeight2 ); @@ -1374,7 +1374,7 @@ void OutputDevice::ImplDrawEmphasisMarks( SalLayout& rSalLayout ) mpMetaFile = pOldMetaFile; } -SalLayout* OutputDevice::getFallbackFont(ImplFontEntry &rFallbackFont, +SalLayout* OutputDevice::getFallbackFont(LogicalFontInstance &rFallbackFont, FontSelectPattern &rFontSelData, int nFallbackLevel, ImplLayoutArgs& rLayoutArgs) const { @@ -1405,13 +1405,13 @@ SalLayout* OutputDevice::getFallbackFont(ImplFontEntry &rFallbackFont, SalLayout* OutputDevice::ImplGlyphFallbackLayout( SalLayout* pSalLayout, ImplLayoutArgs& rLayoutArgs ) const { - // This function relies on a valid mpFontEntry, if it doesn't exist bail out + // This function relies on a valid mpFontInstance, if it doesn't exist bail out // - we'd have crashed later on anyway. At least here we can catch the error in debug // mode. - if ( !mpFontEntry ) + if ( !mpFontInstance ) { SAL_WARN ("vcl.gdi", "No font entry set in OutputDevice"); - assert(mpFontEntry); + assert(mpFontInstance); return nullptr; } @@ -1430,29 +1430,29 @@ SalLayout* OutputDevice::ImplGlyphFallbackLayout( SalLayout* pSalLayout, ImplLay rLayoutArgs.ResetPos(); OUString aMissingCodes = aMissingCodeBuf.makeStringAndClear(); - FontSelectPattern aFontSelData = mpFontEntry->maFontSelData; + FontSelectPattern aFontSelData = mpFontInstance->maFontSelData; // try if fallback fonts support the missing unicodes for( int nFallbackLevel = 1; nFallbackLevel < MAX_FALLBACK; ++nFallbackLevel ) { // find a font family suited for glyph fallback - // GetGlyphFallbackFont() needs a valid aFontSelData.mpFontEntry + // GetGlyphFallbackFont() needs a valid aFontSelData.mpFontInstance // if the system-specific glyph fallback is active - aFontSelData.mpFontEntry = mpFontEntry; // reset the fontentry to base-level + aFontSelData.mpFontInstance = mpFontInstance; // reset the fontinstance to base-level - ImplFontEntry* pFallbackFont = mpFontCache->GetGlyphFallbackFont( mpFontCollection, + LogicalFontInstance* pFallbackFont = mpFontCache->GetGlyphFallbackFont( mpFontCollection, aFontSelData, nFallbackLevel, aMissingCodes ); if( !pFallbackFont ) break; - aFontSelData.mpFontEntry = pFallbackFont; + aFontSelData.mpFontInstance = pFallbackFont; aFontSelData.mpFontData = pFallbackFont->maFontSelData.mpFontData; if( nFallbackLevel < MAX_FALLBACK-1) { // ignore fallback font if it is the same as the original font // unless we are looking for a substituion for 0x202F, in which // case we'll just use a normal space - if( mpFontEntry->maFontSelData.mpFontData == aFontSelData.mpFontData && + if( mpFontInstance->maFontSelData.mpFontData == aFontSelData.mpFontData && aMissingCodes.indexOf(0x202F) == -1 ) { mpFontCache->Release( pFallbackFont ); @@ -1495,8 +1495,8 @@ long OutputDevice::GetMinKashida() const if( mbNewFont && !ImplNewFont() ) return 0; - ImplFontEntry* pEntry = mpFontEntry; - ImplFontAttributes* pFontAttributes = &(pEntry->maFontAttributes); + LogicalFontInstance* pFontInstance = mpFontInstance; + ImplFontAttributes* pFontAttributes = &(pFontInstance->maFontAttributes); return ImplDevicePixelToLogicWidth( pFontAttributes->GetMinKashida() ); } diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx index ebcd6c0d33da..26346ed08e31 100644 --- a/vcl/source/outdev/outdev.cxx +++ b/vcl/source/outdev/outdev.cxx @@ -93,7 +93,7 @@ OutputDevice::OutputDevice() : mpPrevGraphics = nullptr; mpNextGraphics = nullptr; mpMetaFile = nullptr; - mpFontEntry = nullptr; + mpFontInstance = nullptr; mpFontCache = nullptr; mpFontCollection = nullptr; mpDeviceFontList = nullptr; @@ -234,8 +234,8 @@ void OutputDevice::dispose() mpOutDevStateStack = nullptr; // release the active font instance - if( mpFontEntry ) - mpFontCache->Release( mpFontEntry ); + if( mpFontInstance ) + mpFontCache->Release( mpFontInstance ); // remove cached results of GetDevFontList/GetDevSizeList // TODO: use smart pointers for them diff --git a/vcl/source/outdev/outdevstate.cxx b/vcl/source/outdev/outdevstate.cxx index 6f9d70819d09..354d6d0b460f 100644 --- a/vcl/source/outdev/outdevstate.cxx +++ b/vcl/source/outdev/outdevstate.cxx @@ -633,10 +633,10 @@ void OutputDevice::ImplReleaseFonts() mbNewFont = true; mbInitFont = true; - if ( mpFontEntry ) + if ( mpFontInstance ) { - mpFontCache->Release( mpFontEntry ); - mpFontEntry = nullptr; + mpFontCache->Release( mpFontInstance ); + mpFontInstance = nullptr; } if ( mpDeviceFontList ) diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index 762e33ad8cec..e62ea7c318d9 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -109,7 +109,7 @@ void OutputDevice::ImplDrawTextRect( long nBaseX, long nBaseY, long nX = nDistX; long nY = nDistY; - short nOrientation = mpFontEntry->mnOrientation; + short nOrientation = mpFontInstance->mnOrientation; if ( nOrientation ) { // Rotate rect without rounding problems for 90 degree rotations @@ -150,7 +150,7 @@ void OutputDevice::ImplDrawTextRect( long nBaseX, long nBaseY, // inflate because polygons are drawn smaller Rectangle aRect( Point( nX, nY ), Size( nWidth+1, nHeight+1 ) ); tools::Polygon aPoly( aRect ); - aPoly.Rotate( Point( nBaseX, nBaseY ), mpFontEntry->mnOrientation ); + aPoly.Rotate( Point( nBaseX, nBaseY ), mpFontInstance->mnOrientation ); ImplDrawPolygon( aPoly ); return; } @@ -177,9 +177,9 @@ void OutputDevice::ImplDrawTextBackground( const SalLayout& rSalLayout ) mpGraphics->SetFillColor( ImplColorToSal( GetTextFillColor() ) ); mbInitFillColor = true; - ImplDrawTextRect( nX, nY, 0, -(mpFontEntry->maFontAttributes.GetAscent() + mnEmphasisAscent), + ImplDrawTextRect( nX, nY, 0, -(mpFontInstance->maFontAttributes.GetAscent() + mnEmphasisAscent), nWidth, - mpFontEntry->mnLineHeight+mnEmphasisAscent+mnEmphasisDescent ); + mpFontInstance->mnLineHeight+mnEmphasisAscent+mnEmphasisDescent ); } Rectangle OutputDevice::ImplGetTextBoundRect( const SalLayout& rSalLayout ) @@ -189,21 +189,21 @@ Rectangle OutputDevice::ImplGetTextBoundRect( const SalLayout& rSalLayout ) long nY = aPoint.Y(); long nWidth = rSalLayout.GetTextWidth(); - long nHeight = mpFontEntry->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; + long nHeight = mpFontInstance->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; - nY -= mpFontEntry->maFontAttributes.GetAscent() + mnEmphasisAscent; + nY -= mpFontInstance->maFontAttributes.GetAscent() + mnEmphasisAscent; - if ( mpFontEntry->mnOrientation ) + if ( mpFontInstance->mnOrientation ) { long nBaseX = nX, nBaseY = nY; - if ( !(mpFontEntry->mnOrientation % 900) ) + if ( !(mpFontInstance->mnOrientation % 900) ) { long nX2 = nX+nWidth; long nY2 = nY+nHeight; Point aBasePt( nBaseX, nBaseY ); - aBasePt.RotateAround( nX, nY, mpFontEntry->mnOrientation ); - aBasePt.RotateAround( nX2, nY2, mpFontEntry->mnOrientation ); + aBasePt.RotateAround( nX, nY, mpFontInstance->mnOrientation ); + aBasePt.RotateAround( nX2, nY2, mpFontInstance->mnOrientation ); nWidth = nX2-nX; nHeight = nY2-nY; } @@ -212,7 +212,7 @@ Rectangle OutputDevice::ImplGetTextBoundRect( const SalLayout& rSalLayout ) // inflate by +1+1 because polygons are drawn smaller Rectangle aRect( Point( nX, nY ), Size( nWidth+1, nHeight+1 ) ); tools::Polygon aPoly( aRect ); - aPoly.Rotate( Point( nBaseX, nBaseY ), mpFontEntry->mnOrientation ); + aPoly.Rotate( Point( nBaseX, nBaseY ), mpFontInstance->mnOrientation ); return aPoly.GetBoundRect(); } } @@ -232,8 +232,8 @@ bool OutputDevice::ImplDrawRotateText( SalLayout& rSalLayout ) { // guess vertical text extents if GetBoundRect failed int nRight = rSalLayout.GetTextWidth(); - int nTop = mpFontEntry->maFontAttributes.GetAscent() + mnEmphasisAscent; - long nHeight = mpFontEntry->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; + int nTop = mpFontInstance->maFontAttributes.GetAscent() + mnEmphasisAscent; + long nHeight = mpFontInstance->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; aBoundRect = Rectangle( 0, -nTop, nRight, nHeight - nTop ); } @@ -248,7 +248,7 @@ bool OutputDevice::ImplDrawRotateText( SalLayout& rSalLayout ) vcl::Font aFont( GetFont() ); aFont.SetOrientation( 0 ); - aFont.SetSize( Size( mpFontEntry->maFontSelData.mnWidth, mpFontEntry->maFontSelData.mnHeight ) ); + aFont.SetSize( Size( mpFontInstance->maFontSelData.mnWidth, mpFontInstance->maFontSelData.mnHeight ) ); pVDev->SetFont( aFont ); pVDev->SetTextColor( Color( COL_BLACK ) ); pVDev->SetTextFillColor(); @@ -261,12 +261,12 @@ bool OutputDevice::ImplDrawRotateText( SalLayout& rSalLayout ) rSalLayout.DrawText( *static_cast<OutputDevice*>(pVDev)->mpGraphics ); Bitmap aBmp = pVDev->GetBitmap( Point(), aBoundRect.GetSize() ); - if ( !aBmp || !aBmp.Rotate( mpFontEntry->mnOwnOrientation, COL_WHITE ) ) + if ( !aBmp || !aBmp.Rotate( mpFontInstance->mnOwnOrientation, COL_WHITE ) ) return false; // calculate rotation offset tools::Polygon aPoly( aBoundRect ); - aPoly.Rotate( Point(), mpFontEntry->mnOwnOrientation ); + aPoly.Rotate( Point(), mpFontInstance->mnOwnOrientation ); Point aPoint = aPoly.GetBoundRect().TopLeft(); aPoint += Point( nX, nY ); @@ -295,7 +295,7 @@ bool OutputDevice::ImplDrawTextDirect( SalLayout& rSalLayout, bool bTextLines, sal_uInt32 flags ) { - if( mpFontEntry->mnOwnOrientation ) + if( mpFontInstance->mnOwnOrientation ) if( ImplDrawRotateText( rSalLayout ) ) return true; @@ -415,7 +415,7 @@ void OutputDevice::ImplDrawSpecialText( SalLayout& rSalLayout ) { if ( maFont.IsShadow() ) { - long nOff = 1 + ((mpFontEntry->mnLineHeight-24)/24); + long nOff = 1 + ((mpFontInstance->mnLineHeight-24)/24); if ( maFont.IsOutline() ) nOff++; SetTextLineColor(); @@ -947,7 +947,7 @@ long OutputDevice::GetTextHeight() const if( !ImplNewFont() ) return 0; - long nHeight = mpFontEntry->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; + long nHeight = mpFontInstance->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; if ( mbMap ) nHeight = ImplDevicePixelToLogicHeight( nHeight ); @@ -1315,7 +1315,7 @@ ImplLayoutArgs OutputDevice::ImplPrepareLayoutArgs( OUString& rStr, // set layout options ImplLayoutArgs aLayoutArgs(rStr, nMinIndex, nEndIndex, nLayoutFlags, maFont.GetLanguageTag(), pLayoutCache); - int nOrientation = mpFontEntry ? mpFontEntry->mnOrientation : 0; + int nOrientation = mpFontInstance ? mpFontInstance->mnOrientation : 0; aLayoutArgs.SetOrientation( nOrientation ); aLayoutArgs.SetLayoutWidth( nPixelWidth ); @@ -1355,8 +1355,8 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr, // convert from logical units to physical units // recode string if needed - if( mpFontEntry->mpConversion ) { - mpFontEntry->mpConversion->RecodeString( aStr, 0, aStr.getLength() ); + if( mpFontInstance->mpConversion ) { + mpFontInstance->mpConversion->RecodeString( aStr, 0, aStr.getLength() ); pLayoutCache = nullptr; // don't use cache with modified string! } DeviceCoordinate nPixelWidth = (DeviceCoordinate)nLogicalWidth; @@ -1414,7 +1414,7 @@ SalLayout* OutputDevice::ImplLayout(const OUString& rOrigStr, // do glyph fallback if needed // #105768# avoid fallback for very small font sizes - if (aLayoutArgs.NeedFallback() && mpFontEntry->maFontSelData.mnHeight >= 3) + if (aLayoutArgs.NeedFallback() && mpFontInstance->maFontSelData.mnHeight >= 3) pSalLayout = ImplGlyphFallbackLayout(pSalLayout, aLayoutArgs); // position, justify, etc. the layout @@ -2518,7 +2518,7 @@ bool OutputDevice::GetTextBoundRect( Rectangle& rRect, pSalLayout->Release(); } - if( bRet || (OUTDEV_PRINTER == meOutDevType) || !mpFontEntry ) + if( bRet || (OUTDEV_PRINTER == meOutDevType) || !mpFontInstance ) return bRet; // fall back to bitmap method to get the bounding rectangle, @@ -2529,7 +2529,7 @@ bool OutputDevice::GetTextBoundRect( Rectangle& rRect, aFont.SetOutline( false ); aFont.SetRelief( RELIEF_NONE ); aFont.SetOrientation( 0 ); - aFont.SetSize( Size( mpFontEntry->maFontSelData.mnWidth, mpFontEntry->maFontSelData.mnHeight ) ); + aFont.SetSize( Size( mpFontInstance->maFontSelData.mnWidth, mpFontInstance->maFontSelData.mnHeight ) ); aVDev->SetFont( aFont ); aVDev->SetTextAlign( ALIGN_TOP ); @@ -2541,7 +2541,7 @@ bool OutputDevice::GetTextBoundRect( Rectangle& rRect, // make the bitmap big enough // TODO: use factors when it would get too big long nWidth = pSalLayout->GetTextWidth(); - long nHeight = mpFontEntry->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; + long nHeight = mpFontInstance->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; Point aOffset( nWidth/2, 8 ); Size aOutSize( nWidth + 2*aOffset.X(), nHeight + 2*aOffset.Y() ); if( !nWidth || !aVDev->SetOutputSizePixel( aOutSize ) ) @@ -2621,7 +2621,7 @@ bool OutputDevice::GetTextBoundRect( Rectangle& rRect, Point aTopLeft( nLeft, nTop ); aTopLeft -= aOffset; // adjust to text alignment - aTopLeft.Y()+= mnTextOffY - (mpFontEntry->maFontAttributes.GetAscent() + mnEmphasisAscent); + aTopLeft.Y()+= mnTextOffY - (mpFontInstance->maFontAttributes.GetAscent() + mnEmphasisAscent); // convert to logical coordinates aSize = PixelToLogic( aSize ); aTopLeft.X() = ImplDevicePixelToLogicWidth( aTopLeft.X() ); @@ -2648,7 +2648,7 @@ bool OutputDevice::GetTextOutlines( basegfx::B2DPolyPolygonVector& rVector, ImplNewFont(); if( mbInitFont ) InitFont(); - if( !mpFontEntry ) + if( !mpFontInstance ) return false; bool bRet = false; @@ -2728,7 +2728,7 @@ bool OutputDevice::GetTextOutlines( basegfx::B2DPolyPolygonVector& rVector, const_cast<OutputDevice&>(*this).mbNewFont = true; } - if( bRet || (OUTDEV_PRINTER == meOutDevType) || !mpFontEntry ) + if( bRet || (OUTDEV_PRINTER == meOutDevType) || !mpFontInstance ) return bRet; // reset work done (tdf#81876) @@ -2743,7 +2743,7 @@ bool OutputDevice::GetTextOutlines( basegfx::B2DPolyPolygonVector& rVector, if (pSalLayout == nullptr) return false; long nOrgWidth = pSalLayout->GetTextWidth(); - long nOrgHeight = mpFontEntry->mnLineHeight + mnEmphasisAscent + long nOrgHeight = mpFontInstance->mnLineHeight + mnEmphasisAscent + mnEmphasisDescent; pSalLayout->Release(); @@ -2768,7 +2768,7 @@ bool OutputDevice::GetTextOutlines( basegfx::B2DPolyPolygonVector& rVector, if (pSalLayout == nullptr) return false; long nWidth = pSalLayout->GetTextWidth(); - long nHeight = aVDev->mpFontEntry->mnLineHeight + aVDev->mnEmphasisAscent + + long nHeight = aVDev->mpFontInstance->mnLineHeight + aVDev->mnEmphasisAscent + aVDev->mnEmphasisDescent; pSalLayout->Release(); diff --git a/vcl/source/outdev/textline.cxx b/vcl/source/outdev/textline.cxx index ca8c45d2b935..3ced7c812ce1 100644 --- a/vcl/source/outdev/textline.cxx +++ b/vcl/source/outdev/textline.cxx @@ -56,12 +56,12 @@ bool OutputDevice::ImplIsUnderlineAbove( const vcl::Font& rFont ) void OutputDevice::ImplInitTextLineSize() { - mpFontEntry->maFontAttributes.ImplInitTextLineSize( this ); + mpFontInstance->maFontAttributes.ImplInitTextLineSize( this ); } void OutputDevice::ImplInitAboveTextLineSize() { - mpFontEntry->maFontAttributes.ImplInitAboveTextLineSize(); + mpFontInstance->maFontAttributes.ImplInitAboveTextLineSize(); } void OutputDevice::ImplDrawWavePixel( long nOriginX, long nOriginY, @@ -215,19 +215,19 @@ void OutputDevice::ImplDrawWaveTextLine( long nBaseX, long nBaseY, Color aColor, bool bIsAbove ) { - ImplFontEntry* pFontEntry = mpFontEntry; + LogicalFontInstance* pFontInstance = mpFontInstance; long nLineHeight; long nLinePos; if ( bIsAbove ) { - nLineHeight = pFontEntry->maFontAttributes.GetAboveWavelineUnderlineSize(); - nLinePos = pFontEntry->maFontAttributes.GetAboveWavelineUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetAboveWavelineUnderlineSize(); + nLinePos = pFontInstance->maFontAttributes.GetAboveWavelineUnderlineOffset(); } else { - nLineHeight = pFontEntry->maFontAttributes.GetWavelineUnderlineSize(); - nLinePos = pFontEntry->maFontAttributes.GetWavelineUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetWavelineUnderlineSize(); + nLinePos = pFontInstance->maFontAttributes.GetWavelineUnderlineOffset(); } if ( (eTextLine == UNDERLINE_SMALLWAVE) && (nLineHeight > 3) ) nLineHeight = 3; @@ -264,16 +264,16 @@ void OutputDevice::ImplDrawWaveTextLine( long nBaseX, long nBaseY, nLinePos -= nLineWidthHeight-nLineDY2; ImplDrawWaveLine( nBaseX, nBaseY, nDistX, nLinePos, nWidth, nLineHeight, - nLineWidth, mpFontEntry->mnOrientation, aColor ); + nLineWidth, mpFontInstance->mnOrientation, aColor ); nLinePos += nLineWidthHeight+nLineDY; ImplDrawWaveLine( nBaseX, nBaseY, nDistX, nLinePos, nWidth, nLineHeight, - nLineWidth, mpFontEntry->mnOrientation, aColor ); + nLineWidth, mpFontInstance->mnOrientation, aColor ); } else { nLinePos -= nLineWidthHeight/2; ImplDrawWaveLine( nBaseX, nBaseY, nDistX, nLinePos, nWidth, nLineHeight, - nLineWidth, mpFontEntry->mnOrientation, aColor ); + nLineWidth, mpFontInstance->mnOrientation, aColor ); } } @@ -283,7 +283,7 @@ void OutputDevice::ImplDrawStraightTextLine( long nBaseX, long nBaseY, Color aColor, bool bIsAbove ) { - ImplFontEntry* pFontEntry = mpFontEntry; + LogicalFontInstance* pFontInstance = mpFontInstance; long nLineHeight = 0; long nLinePos = 0; long nLinePos2 = 0; @@ -303,13 +303,13 @@ void OutputDevice::ImplDrawStraightTextLine( long nBaseX, long nBaseY, case UNDERLINE_DASHDOTDOT: if ( bIsAbove ) { - nLineHeight = pFontEntry->maFontAttributes.GetAboveUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetAboveUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetAboveUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetAboveUnderlineOffset(); } else { - nLineHeight = pFontEntry->maFontAttributes.GetUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetUnderlineOffset(); } break; case UNDERLINE_BOLD: @@ -320,27 +320,27 @@ void OutputDevice::ImplDrawStraightTextLine( long nBaseX, long nBaseY, case UNDERLINE_BOLDDASHDOTDOT: if ( bIsAbove ) { - nLineHeight = pFontEntry->maFontAttributes.GetAboveBoldUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetAboveBoldUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetAboveBoldUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetAboveBoldUnderlineOffset(); } else { - nLineHeight = pFontEntry->maFontAttributes.GetBoldUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetBoldUnderlineOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetBoldUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetBoldUnderlineOffset(); } break; case UNDERLINE_DOUBLE: if ( bIsAbove ) { - nLineHeight = pFontEntry->maFontAttributes.GetAboveDoubleUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetAboveDoubleUnderlineOffset1(); - nLinePos2 = nY + pFontEntry->maFontAttributes.GetAboveDoubleUnderlineOffset2(); + nLineHeight = pFontInstance->maFontAttributes.GetAboveDoubleUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetAboveDoubleUnderlineOffset1(); + nLinePos2 = nY + pFontInstance->maFontAttributes.GetAboveDoubleUnderlineOffset2(); } else { - nLineHeight = pFontEntry->maFontAttributes.GetDoubleUnderlineSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetDoubleUnderlineOffset1(); - nLinePos2 = nY + pFontEntry->maFontAttributes.GetDoubleUnderlineOffset2(); + nLineHeight = pFontInstance->maFontAttributes.GetDoubleUnderlineSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetDoubleUnderlineOffset1(); + nLinePos2 = nY + pFontInstance->maFontAttributes.GetDoubleUnderlineOffset2(); } break; default: @@ -525,7 +525,7 @@ void OutputDevice::ImplDrawStrikeoutLine( long nBaseX, long nBaseY, FontStrikeout eStrikeout, Color aColor ) { - ImplFontEntry* pFontEntry = mpFontEntry; + LogicalFontInstance* pFontInstance = mpFontInstance; long nLineHeight = 0; long nLinePos = 0; long nLinePos2 = 0; @@ -538,17 +538,17 @@ void OutputDevice::ImplDrawStrikeoutLine( long nBaseX, long nBaseY, switch ( eStrikeout ) { case STRIKEOUT_SINGLE: - nLineHeight = pFontEntry->maFontAttributes.GetStrikeoutSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetStrikeoutOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetStrikeoutSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetStrikeoutOffset(); break; case STRIKEOUT_BOLD: - nLineHeight = pFontEntry->maFontAttributes.GetBoldStrikeoutSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetBoldStrikeoutOffset(); + nLineHeight = pFontInstance->maFontAttributes.GetBoldStrikeoutSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetBoldStrikeoutOffset(); break; case STRIKEOUT_DOUBLE: - nLineHeight = pFontEntry->maFontAttributes.GetDoubleStrikeoutSize(); - nLinePos = nY + pFontEntry->maFontAttributes.GetDoubleStrikeoutOffset1(); - nLinePos2 = nY + pFontEntry->maFontAttributes.GetDoubleStrikeoutOffset2(); + nLineHeight = pFontInstance->maFontAttributes.GetDoubleStrikeoutSize(); + nLinePos = nY + pFontInstance->maFontAttributes.GetDoubleStrikeoutOffset1(); + nLinePos2 = nY + pFontInstance->maFontAttributes.GetDoubleStrikeoutOffset2(); break; default: break; @@ -624,10 +624,10 @@ void OutputDevice::ImplDrawStrikeoutChar( long nBaseX, long nBaseY, const OUString aStrikeoutText(aChars, nStrikeStrLen); - if( mpFontEntry->mnOrientation ) + if( mpFontInstance->mnOrientation ) { Point aOriginPt(0, 0); - aOriginPt.RotateAround( nDistX, nDistY, mpFontEntry->mnOrientation ); + aOriginPt.RotateAround( nDistX, nDistY, mpFontInstance->mnOrientation ); } nBaseX += nDistX; @@ -652,13 +652,13 @@ void OutputDevice::ImplDrawStrikeoutChar( long nBaseX, long nBaseY, Rectangle aPixelRect; aPixelRect.Left() = nBaseX+mnTextOffX; aPixelRect.Right() = aPixelRect.Left()+nWidth; - aPixelRect.Bottom() = nBaseY+mpFontEntry->maFontAttributes.GetDescent(); - aPixelRect.Top() = nBaseY-mpFontEntry->maFontAttributes.GetAscent(); + aPixelRect.Bottom() = nBaseY+mpFontInstance->maFontAttributes.GetDescent(); + aPixelRect.Top() = nBaseY-mpFontInstance->maFontAttributes.GetAscent(); - if (mpFontEntry->mnOrientation) + if (mpFontInstance->mnOrientation) { tools::Polygon aPoly( aPixelRect ); - aPoly.Rotate( Point(nBaseX+mnTextOffX, nBaseY+mnTextOffY), mpFontEntry->mnOrientation); + aPoly.Rotate( Point(nBaseX+mnTextOffX, nBaseY+mnTextOffY), mpFontInstance->mnOrientation); aPixelRect = aPoly.GetBoundRect(); } @@ -697,8 +697,8 @@ void OutputDevice::ImplDrawTextLine( long nX, long nY, { // --- RTL --- mirror at basex long nXAdd = nWidth - nDistX; - if( mpFontEntry->mnOrientation ) - nXAdd = FRound( nXAdd * cos( mpFontEntry->mnOrientation * F_PI1800 ) ); + if( mpFontInstance->mnOrientation ) + nXAdd = FRound( nXAdd * cos( mpFontInstance->mnOrientation * F_PI1800 ) ); nX += nXAdd - 1; } @@ -771,10 +771,10 @@ void OutputDevice::ImplDrawTextLines( SalLayout& rSalLayout, FontStrikeout eStri { // get the distance to the base point (as projected to baseline) nDist = aPos.X() - aStartPt.X(); - if( mpFontEntry->mnOrientation ) + if( mpFontInstance->mnOrientation ) { const long nDY = aPos.Y() - aStartPt.Y(); - const double fRad = mpFontEntry->mnOrientation * F_PI1800; + const double fRad = mpFontInstance->mnOrientation * F_PI1800; nDist = FRound( nDist*cos(fRad) - nDY*sin(fRad) ); } } @@ -1042,10 +1042,10 @@ void OutputDevice::DrawWaveLine( const Point& rStartPos, const Point& rEndPos ) } // #109280# make sure the waveline does not exceed the descent to avoid paint problems - ImplFontEntry* pFontEntry = mpFontEntry; - if( nWaveHeight > pFontEntry->maFontAttributes.GetWavelineUnderlineSize() ) + LogicalFontInstance* pFontInstance = mpFontInstance; + if( nWaveHeight > pFontInstance->maFontAttributes.GetWavelineUnderlineSize() ) { - nWaveHeight = pFontEntry->maFontAttributes.GetWavelineUnderlineSize(); + nWaveHeight = pFontInstance->maFontAttributes.GetWavelineUnderlineSize(); } ImplDrawWaveLine(nStartX, nStartY, 0, 0, nEndX-nStartX, nWaveHeight, diff --git a/vcl/source/window/accessibility.cxx b/vcl/source/window/accessibility.cxx index c8e2d88ab466..a36f0aa5eb9d 100644 --- a/vcl/source/window/accessibility.cxx +++ b/vcl/source/window/accessibility.cxx @@ -63,7 +63,7 @@ #include "salgdi.hxx" #include "svdata.hxx" #include "dbggui.hxx" -#include "fontentry.hxx" +#include "fontinstance.hxx" #include "window.h" #include "toolbox.h" #include "outdev.h" diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 0974d2f6185b..d50871932fd1 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -1884,7 +1884,7 @@ void Window::ImplNewInputContext() SalInputContext aNewContext; const vcl::Font& rFont = rInputContext.GetFont(); const OUString& rFontName = rFont.GetName(); - ImplFontEntry* pFontEntry = nullptr; + LogicalFontInstance* pFontInstance = nullptr; aNewContext.mpFont = nullptr; if (!rFontName.isEmpty()) { @@ -1899,17 +1899,17 @@ void Window::ImplNewInputContext() else aSize.Height() = (12*pFocusWin->mnDPIY)/72; } - pFontEntry = pFocusWin->mpFontCache->GetFontEntry( pFocusWin->mpFontCollection, + pFontInstance = pFocusWin->mpFontCache->GetFontInstance( pFocusWin->mpFontCollection, rFont, aSize, static_cast<float>(aSize.Height()) ); - if ( pFontEntry ) - aNewContext.mpFont = &pFontEntry->maFontSelData; + if ( pFontInstance ) + aNewContext.mpFont = &pFontInstance->maFontSelData; } aNewContext.meLanguage = rFont.GetLanguage(); aNewContext.mnOptions = rInputContext.GetOptions(); pFocusWin->ImplGetFrame()->SetInputContext( &aNewContext ); - if ( pFontEntry ) - pFocusWin->mpFontCache->Release( pFontEntry ); + if ( pFontInstance ) + pFocusWin->mpFontCache->Release( pFontInstance ); } void Window::doLazyDelete() diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx index 3740e77cb07f..ff5d496a1da7 100644 --- a/vcl/source/window/window2.cxx +++ b/vcl/source/window/window2.cxx @@ -36,7 +36,7 @@ #include <vcl/settings.hxx> #include <window.h> -#include <fontentry.hxx> +#include <fontinstance.hxx> #include <outdev.h> #include <svdata.hxx> #include <impbmp.hxx> diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 7727e12c34bf..52de75dee568 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -90,7 +90,7 @@ bool CairoTextRender::setFont( const FontSelectPattern *pEntry, int nFallbackLev mpServerFont[ nFallbackLevel ] = pServerFont; // apply font specific-hint settings - ImplServerFontEntry* pSFE = static_cast<ImplServerFontEntry*>( pEntry->mpFontEntry ); + ImplServerFontEntry* pSFE = static_cast<ImplServerFontEntry*>( pEntry->mpFontInstance ); pSFE->HandleFontOptions(); return true; diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx index e2b4c2ebf0a2..bf32700b068a 100644 --- a/vcl/win/gdi/salfont.cxx +++ b/vcl/win/gdi/salfont.cxx @@ -1437,7 +1437,7 @@ sal_uInt16 WinSalGraphics::SetFont( FontSelectPattern* pFont, int nFallbackLevel } DBG_ASSERT( pFont->mpFontData, "WinSalGraphics mpFontData==NULL"); - mpWinFontEntry[ nFallbackLevel ] = reinterpret_cast<ImplWinFontEntry*>( pFont->mpFontEntry ); + mpWinFontEntry[ nFallbackLevel ] = reinterpret_cast<ImplWinFontEntry*>( pFont->mpFontInstance ); mpWinFontData[ nFallbackLevel ] = static_cast<const ImplWinFontData*>( pFont->mpFontData ); HFONT hOldFont = 0; diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index 89054fa4a066..70c0dc5a4992 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -86,7 +86,7 @@ struct OpenGLGlyphCacheChunk }; // win32 specific physical font instance -class ImplWinFontEntry : public ImplFontEntry +class ImplWinFontEntry : public LogicalFontInstance { public: explicit ImplWinFontEntry( FontSelectPattern& ); @@ -2951,7 +2951,7 @@ int WinSalGraphics::GetMinKashidaWidth() } ImplWinFontEntry::ImplWinFontEntry( FontSelectPattern& rFSD ) -: ImplFontEntry( rFSD ) +: LogicalFontInstance( rFSD ) , mpGLyphyAtlas( nullptr ) , mpGLyphyFont( nullptr ) , mnMinKashidaWidth( -1 ) @@ -3001,10 +3001,10 @@ PhysicalFontFace* ImplWinFontData::Clone() const return pClone; } -ImplFontEntry* ImplWinFontData::CreateFontInstance( FontSelectPattern& rFSD ) const +LogicalFontInstance* ImplWinFontData::CreateFontInstance( FontSelectPattern& rFSD ) const { - ImplFontEntry* pEntry = new ImplWinFontEntry( rFSD ); - return pEntry; + LogicalFontInstance* pFontInstance = new ImplWinFontEntry( rFSD ); + return pFontInstance; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |