LibreOffice Module vcl (master) 1
Classes | Public Member Functions | Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
LogicalFontInstance Class Referenceabstract

#include <LogicalFontInstance.hxx>

Inheritance diagram for LogicalFontInstance:
[legend]
Collaboration diagram for LogicalFontInstance:
[legend]

Classes

struct  MapEntry
 

Public Member Functions

virtual ~LogicalFontInstance () override
 
void AddFallbackForUnicode (sal_UCS4 cChar, FontWeight eWeight, const OUString &rFontName, bool bEmbolden, const ItalicMatrix &rMatrix)
 
bool GetFallbackForUnicode (sal_UCS4 cInChar, FontWeight eInWeight, OUString *pOutFontName, bool *pOutEmbolden, ItalicMatrix *pOutItalicMatrix) const
 
void IgnoreFallbackForUnicode (sal_UCS4, FontWeight eWeight, std::u16string_view rFontName)
 
hb_font_t * GetHbFont ()
 
bool IsGraphiteFont ()
 
bool NeedOffsetCorrection (sal_Int32 nYOffset)
 
void SetAverageWidthFactor (double nFactor)
 
double GetAverageWidthFactor () const
 
const vcl::font::FontSelectPatternGetFontSelectPattern () const
 
const vcl::font::PhysicalFontFaceGetFontFace () const
 
vcl::font::PhysicalFontFaceGetFontFace ()
 
const ImplFontCacheGetFontCache () const
 
bool GetGlyphBoundRect (sal_GlyphId, tools::Rectangle &, bool) const
 
virtual bool GetGlyphOutline (sal_GlyphId, basegfx::B2DPolyPolygon &, bool) const =0
 
basegfx::B2DPolyPolygon GetGlyphOutlineUntransformed (sal_GlyphId) const
 
sal_GlyphId GetGlyphIndex (uint32_t, uint32_t=0) const
 
double GetGlyphWidth (sal_GlyphId, bool=false, bool=true) const
 
double GetKashidaWidth () const
 
void GetScale (double *nXScale, double *nYScale) const
 
bool NeedsArtificialItalic () const
 
bool NeedsArtificialBold () const
 
- Public Member Functions inherited from salhelper::SimpleReferenceObject
 SimpleReferenceObject ()
 
void acquire ()
 
void release ()
 

Public Attributes

FontMetricDataRef mxFontMetric
 
const ConvertChar * mpConversion
 
tools::Long mnLineHeight
 
Degree10 mnOwnOrientation
 
Degree10 mnOrientation
 
bool mbInit
 

Protected Member Functions

 LogicalFontInstance (const vcl::font::PhysicalFontFace &, const vcl::font::FontSelectPattern &)
 
hb_font_t * InitHbFont ()
 
virtual void ImplInitHbFont (hb_font_t *)
 
- Protected Member Functions inherited from salhelper::SimpleReferenceObject
virtual ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE
 

Private Types

enum class  FontFamilyEnum {
  Unclassified ,
  DFKaiSB
}
 
typedef ::std::unordered_map<::std::pair< sal_UCS4, FontWeight >, MapEntryUnicodeFallbackList
 

Private Member Functions

hb_font_t * GetHbFontUntransformed () const
 

Private Attributes

UnicodeFallbackList maUnicodeFallbackList
 
ImplFontCachempFontCache
 
const vcl::font::FontSelectPattern m_aFontSelData
 
hb_font_t * m_pHbFont
 
hb_font_t * m_pHbFontUntransformed = nullptr
 
double m_nAveWidthFactor
 
rtl::Reference< vcl::font::PhysicalFontFacem_pFontFace
 
std::optional< bool > m_xbIsGraphiteFont
 
std::optional< FontFamilyEnumm_xeFontFamilyEnum
 
hb_draw_funcs_t * m_pHbDrawFuncs = nullptr
 
basegfx::B2DPolygon m_aDrawPolygon
 

Friends

class vcl::font::PhysicalFontFace
 
class ImplFontCache
 

Additional Inherited Members

- Static Public Member Functions inherited from salhelper::SimpleReferenceObject
static void * operator new (std::size_t nSize)
 
static void * operator new (std::size_t nSize, std::nothrow_t const &rNothrow)
 
static void operator delete (void *pPtr)
 
static void operator delete (void *pPtr, std::nothrow_t const &rNothrow)
 
- Protected Attributes inherited from salhelper::SimpleReferenceObject
oslInterlockedCount m_nCount
 

Detailed Description

Definition at line 67 of file LogicalFontInstance.hxx.

Member Typedef Documentation

◆ UnicodeFallbackList

typedef ::std::unordered_map<::std::pair<sal_UCS4, FontWeight>, MapEntry> LogicalFontInstance::UnicodeFallbackList
private

Definition at line 138 of file LogicalFontInstance.hxx.

Member Enumeration Documentation

◆ FontFamilyEnum

enum class LogicalFontInstance::FontFamilyEnum
strongprivate
Enumerator
Unclassified 
DFKaiSB 

Definition at line 148 of file LogicalFontInstance.hxx.

Constructor & Destructor Documentation

◆ ~LogicalFontInstance()

LogicalFontInstance::~LogicalFontInstance ( )
overridevirtual

◆ LogicalFontInstance()

LogicalFontInstance::LogicalFontInstance ( const vcl::font::PhysicalFontFace rFontFace,
const vcl::font::FontSelectPattern rFontSelData 
)
explicitprotected

Definition at line 29 of file LogicalFontInstance.cxx.

Member Function Documentation

◆ AddFallbackForUnicode()

void LogicalFontInstance::AddFallbackForUnicode ( sal_UCS4  cChar,
FontWeight  eWeight,
const OUString &  rFontName,
bool  bEmbolden,
const ItalicMatrix rMatrix 
)

◆ GetAverageWidthFactor()

double LogicalFontInstance::GetAverageWidthFactor ( ) const
inline

Definition at line 97 of file LogicalFontInstance.hxx.

◆ GetFallbackForUnicode()

bool LogicalFontInstance::GetFallbackForUnicode ( sal_UCS4  cInChar,
FontWeight  eInWeight,
OUString *  pOutFontName,
bool *  pOutEmbolden,
ItalicMatrix pOutItalicMatrix 
) const

◆ GetFontCache()

const ImplFontCache * LogicalFontInstance::GetFontCache ( ) const
inline

◆ GetFontFace() [1/2]

vcl::font::PhysicalFontFace * LogicalFontInstance::GetFontFace ( )
inline

Definition at line 101 of file LogicalFontInstance.hxx.

◆ GetFontFace() [2/2]

const vcl::font::PhysicalFontFace * LogicalFontInstance::GetFontFace ( ) const
inline

◆ GetFontSelectPattern()

const vcl::font::FontSelectPattern & LogicalFontInstance::GetFontSelectPattern ( ) const
inline

◆ GetGlyphBoundRect()

bool LogicalFontInstance::GetGlyphBoundRect ( sal_GlyphId  nID,
tools::Rectangle rRect,
bool  bVertical 
) const

◆ GetGlyphIndex()

sal_GlyphId LogicalFontInstance::GetGlyphIndex ( uint32_t  nUnicode,
uint32_t  nVariationSelector = 0 
) const

◆ GetGlyphOutline()

virtual bool LogicalFontInstance::GetGlyphOutline ( sal_GlyphId  ,
basegfx::B2DPolyPolygon ,
bool   
) const
pure virtual

◆ GetGlyphOutlineUntransformed()

basegfx::B2DPolyPolygon LogicalFontInstance::GetGlyphOutlineUntransformed ( sal_GlyphId  nGlyph) const

◆ GetGlyphWidth()

double LogicalFontInstance::GetGlyphWidth ( sal_GlyphId  nGlyph,
bool  bVertical = false,
bool  bScale = true 
) const

◆ GetHbFont()

hb_font_t * LogicalFontInstance::GetHbFont ( )
inline

◆ GetHbFontUntransformed()

hb_font_t * LogicalFontInstance::GetHbFontUntransformed ( ) const
private

◆ GetKashidaWidth()

double LogicalFontInstance::GetKashidaWidth ( ) const

Definition at line 105 of file LogicalFontInstance.cxx.

References GetGlyphIndex(), and GetGlyphWidth().

Referenced by GenericSalLayout::ApplyDXArray().

◆ GetScale()

void LogicalFontInstance::GetScale ( double *  nXScale,
double *  nYScale 
) const

◆ IgnoreFallbackForUnicode()

void LogicalFontInstance::IgnoreFallbackForUnicode ( sal_UCS4  cChar,
FontWeight  eWeight,
std::u16string_view  rFontName 
)

◆ ImplInitHbFont()

virtual void LogicalFontInstance::ImplInitHbFont ( hb_font_t *  )
inlineprotectedvirtual

Reimplemented in WinFontInstance.

Definition at line 124 of file LogicalFontInstance.hxx.

Referenced by InitHbFont().

◆ InitHbFont()

hb_font_t * LogicalFontInstance::InitHbFont ( )
protected

◆ IsGraphiteFont()

bool LogicalFontInstance::IsGraphiteFont ( )

Definition at line 238 of file LogicalFontInstance.cxx.

References GetHbFont(), and m_xbIsGraphiteFont.

Referenced by GenericSalLayout::LayoutText().

◆ NeedOffsetCorrection()

bool LogicalFontInstance::NeedOffsetCorrection ( sal_Int32  nYOffset)

◆ NeedsArtificialBold()

bool LogicalFontInstance::NeedsArtificialBold ( ) const

◆ NeedsArtificialItalic()

bool LogicalFontInstance::NeedsArtificialItalic ( ) const

◆ SetAverageWidthFactor()

void LogicalFontInstance::SetAverageWidthFactor ( double  nFactor)
inline

Definition at line 96 of file LogicalFontInstance.hxx.

Friends And Related Function Documentation

◆ ImplFontCache

friend class ImplFontCache
friend

Definition at line 72 of file LogicalFontInstance.hxx.

◆ vcl::font::PhysicalFontFace

friend class vcl::font::PhysicalFontFace
friend

Definition at line 71 of file LogicalFontInstance.hxx.

Member Data Documentation

◆ m_aDrawPolygon

basegfx::B2DPolygon LogicalFontInstance::m_aDrawPolygon
private

Definition at line 158 of file LogicalFontInstance.hxx.

Referenced by GetGlyphOutlineUntransformed().

◆ m_aFontSelData

const vcl::font::FontSelectPattern LogicalFontInstance::m_aFontSelData
private

Definition at line 141 of file LogicalFontInstance.hxx.

Referenced by GetScale(), NeedsArtificialBold(), and NeedsArtificialItalic().

◆ m_nAveWidthFactor

double LogicalFontInstance::m_nAveWidthFactor
private

Definition at line 144 of file LogicalFontInstance.hxx.

Referenced by GetScale().

◆ m_pFontFace

rtl::Reference<vcl::font::PhysicalFontFace> LogicalFontInstance::m_pFontFace
private

Definition at line 145 of file LogicalFontInstance.hxx.

Referenced by NeedsArtificialBold(), and NeedsArtificialItalic().

◆ m_pHbDrawFuncs

hb_draw_funcs_t* LogicalFontInstance::m_pHbDrawFuncs = nullptr
mutableprivate

Definition at line 157 of file LogicalFontInstance.hxx.

Referenced by GetGlyphOutlineUntransformed(), and ~LogicalFontInstance().

◆ m_pHbFont

hb_font_t* LogicalFontInstance::m_pHbFont
private

Definition at line 142 of file LogicalFontInstance.hxx.

Referenced by GetHbFont(), and ~LogicalFontInstance().

◆ m_pHbFontUntransformed

hb_font_t* LogicalFontInstance::m_pHbFontUntransformed = nullptr
mutableprivate

Definition at line 143 of file LogicalFontInstance.hxx.

Referenced by GetHbFontUntransformed(), and ~LogicalFontInstance().

◆ m_xbIsGraphiteFont

std::optional<bool> LogicalFontInstance::m_xbIsGraphiteFont
private

Definition at line 146 of file LogicalFontInstance.hxx.

Referenced by IsGraphiteFont().

◆ m_xeFontFamilyEnum

std::optional<FontFamilyEnum> LogicalFontInstance::m_xeFontFamilyEnum
private

Definition at line 155 of file LogicalFontInstance.hxx.

Referenced by NeedOffsetCorrection().

◆ maUnicodeFallbackList

UnicodeFallbackList LogicalFontInstance::maUnicodeFallbackList
private

◆ mbInit

bool LogicalFontInstance::mbInit

Definition at line 83 of file LogicalFontInstance.hxx.

Referenced by OutputDevice::ImplNewFont().

◆ mnLineHeight

tools::Long LogicalFontInstance::mnLineHeight

◆ mnOrientation

Degree10 LogicalFontInstance::mnOrientation

◆ mnOwnOrientation

Degree10 LogicalFontInstance::mnOwnOrientation

◆ mpConversion

const ConvertChar* LogicalFontInstance::mpConversion

Definition at line 78 of file LogicalFontInstance.hxx.

◆ mpFontCache

ImplFontCache* LogicalFontInstance::mpFontCache
mutableprivate

◆ mxFontMetric

FontMetricDataRef LogicalFontInstance::mxFontMetric

The documentation for this class was generated from the following files: