102 rLFI.second->mpFontCache =
nullptr;
107 const vcl::Font& rFont,
const Size& rSize,
float fExactHeight,
bool bNonAntialias )
129 pFontInstance = (*it).second;
136 SAL_WARN_IF( (pFontFamily ==
nullptr),
"vcl",
"ImplFontCache::Get() No logical font found!" );
144 pFontInstance = (*it).second;
148 if( !pFontInstance && pFontFamily)
154 pFontInstance->mpFontCache =
this;
168 if (!pFontInstance->mpConversion &&
169 aFontSelData.
maTargetName.equalsIgnoreAsciiCase(
"symbol") &&
170 aFontSelData.
maSearchName.equalsIgnoreAsciiCase(
"symbol"))
172 pFontInstance->mpConversion = ConvertChar::GetRecodeData(
u"Symbol",
u"AppleSymbol" );
176 static const size_t FONTCACHE_MAX = getenv(
"LO_TESTNAME") ? 1 : 50;
180 struct limit_exception :
public std::exception {};
186 throw limit_exception();
191 { return rGlyphPair.first.m_pFont == pFontEntry; });
197 catch (limit_exception&) {}
200 assert(pFontInstance);
206 return pFontInstance;
215 if( nFallbackLevel >= 1)
227 if (nFallbackLevel == 1)
230 pFallbackData = pFontCollection->
GetGlyphFallbackFont(rFontSelData, pFontInstance, rMissingCodes, nFallbackLevel-1);
241 return pFallbackFont;
bool IsMicrosoftSymbolEncoded() const
FontItalic GetItalic() const
FontWeight GetWeight() const
void SetFamilyName(const OUString &sFamilyName)
FontPitch GetPitch() const
const OUString & GetStyleName() const
LogicalFontInstance * mpLastHitCacheEntry
keeps the last hit cache entry
rtl::Reference< LogicalFontInstance > GetFontInstance(vcl::font::PhysicalFontCollection const *, vcl::font::FontSelectPattern &)
bool GetCachedGlyphBoundRect(const LogicalFontInstance *, sal_GlyphId, tools::Rectangle &)
FontInstanceList maFontInstanceList
GlyphBoundRectCache m_aBoundRectCache
void CacheGlyphBoundRect(const LogicalFontInstance *, sal_GlyphId, tools::Rectangle &)
rtl::Reference< LogicalFontInstance > GetGlyphFallbackFont(vcl::font::PhysicalFontCollection const *, vcl::font::FontSelectPattern &, LogicalFontInstance *pLogicalFont, int nFallbackLevel, OUString &rMissingCodes)
const ImplFontCache * GetFontCache() const
ImplFontCache * mpFontCache
const vcl::font::FontSelectPattern & GetFontSelectPattern() const
void insert(key_value_pair_t &rPair)
list_const_iterator_t const_iterator
list_const_iterator_t end() const
void remove_if(UnaryPredicate pred)
std::pair< Key, Value > key_value_pair_t
list_const_iterator_t find(const Key &key)
oslInterlockedCount m_nCount
const OUString & GetFamilyName() const
ItalicMatrix maItalicMatrix
static const char FEAT_PREFIX
vcl::font::PhysicalFontFamily * FindFontFamily(std::u16string_view rFontName) const
vcl::font::PhysicalFontFamily * GetGlyphFallbackFont(vcl::font::FontSelectPattern &, LogicalFontInstance *pLogicalFont, OUString &rMissingCodes, int nFallbackLevel) const
abstract base class for physical font faces
virtual rtl::Reference< LogicalFontInstance > CreateFontInstance(const vcl::font::FontSelectPattern &) const =0
PhysicalFontFace * FindBestFontFace(const vcl::font::FontSelectPattern &rFSD) const
const OUString & GetSearchName() const
const OUString & GetFamilyName() const
#define DBG_TESTSOLARMUTEX()
UNOTOOLS_DLLPUBLIC bool IsOpenSymbol(std::u16string_view rFontName)
#define SAL_WARN_IF(condition, area, stream)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
A PhysicalFontFaceCollection is created by a PhysicalFontCollection and becomes invalid when original...
bool operator()(const vcl::font::FontSelectPattern &, const vcl::font::FontSelectPattern &) const
size_t operator()(const vcl::font::FontSelectPattern &) const