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:
Collaboration diagram for LogicalFontInstance:


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
bool GetGlyphOutlineUntransformed (sal_GlyphId, basegfx::B2DPolyPolygon &) const
sal_GlyphId GetGlyphIndex (uint32_t, uint32_t=0) const
double GetGlyphWidth (sal_GlyphId, bool=false, bool=true) const
int 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

ImplFontMetricDataRef 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 &)
virtual bool ImplGetGlyphBoundRect (sal_GlyphId, tools::Rectangle &, bool) const =0
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 ,
typedef ::std::unordered_map<::std::pair< sal_UCS4, FontWeight >, MapEntryUnicodeFallbackList

Private Member Functions

hb_font_t * GetHbFontUntransformed () const

Private Attributes

UnicodeFallbackList maUnicodeFallbackList
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


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

Definition at line 140 of file LogicalFontInstance.hxx.

Member Enumeration Documentation

◆ FontFamilyEnum

enum class LogicalFontInstance::FontFamilyEnum

Definition at line 150 of file LogicalFontInstance.hxx.

Constructor & Destructor Documentation

◆ ~LogicalFontInstance()

LogicalFontInstance::~LogicalFontInstance ( )

◆ LogicalFontInstance()

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

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

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

◆ GetFontFace() [1/2]

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

Definition at line 101 of file LogicalFontInstance.hxx.

◆ GetFontFace() [2/2]

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

◆ GetFontSelectPattern()

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

◆ 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 ,
) const
pure virtual

◆ GetGlyphOutlineUntransformed()

bool LogicalFontInstance::GetGlyphOutlineUntransformed ( sal_GlyphId  nGlyph,
basegfx::B2DPolyPolygon rPolyPoly 
) const

Definition at line 299 of file LogicalFontInstance.cxx.

References GetHbFontUntransformed().

Referenced by vcl::PDFWriterImpl::registerGlyph().

◆ GetGlyphWidth()

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

◆ GetHbFont()

hb_font_t * LogicalFontInstance::GetHbFont ( )

◆ GetHbFontUntransformed()

hb_font_t * LogicalFontInstance::GetHbFontUntransformed ( ) const

◆ GetKashidaWidth()

int LogicalFontInstance::GetKashidaWidth ( ) const

Definition at line 110 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 

◆ ImplGetGlyphBoundRect()

virtual bool LogicalFontInstance::ImplGetGlyphBoundRect ( sal_GlyphId  ,
tools::Rectangle ,
) const
protectedpure virtual

◆ ImplInitHbFont()

virtual void LogicalFontInstance::ImplInitHbFont ( hb_font_t *  )

Reimplemented in WinFontInstance.

Definition at line 126 of file LogicalFontInstance.hxx.

Referenced by InitHbFont().

◆ InitHbFont()

hb_font_t * LogicalFontInstance::InitHbFont ( )

◆ IsGraphiteFont()

bool LogicalFontInstance::IsGraphiteFont ( )

Definition at line 212 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)

Definition at line 96 of file LogicalFontInstance.hxx.

Friends And Related Function Documentation

◆ ImplFontCache

friend class ImplFontCache

Definition at line 72 of file LogicalFontInstance.hxx.

◆ vcl::font::PhysicalFontFace

friend class vcl::font::PhysicalFontFace

Definition at line 71 of file LogicalFontInstance.hxx.

Member Data Documentation

◆ m_aFontSelData

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

Definition at line 143 of file LogicalFontInstance.hxx.

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

◆ m_nAveWidthFactor

double LogicalFontInstance::m_nAveWidthFactor

Definition at line 146 of file LogicalFontInstance.hxx.

Referenced by GetScale().

◆ m_pFontFace

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

Definition at line 147 of file LogicalFontInstance.hxx.

Referenced by NeedsArtificialBold(), and NeedsArtificialItalic().

◆ m_pHbFont

hb_font_t* LogicalFontInstance::m_pHbFont

Definition at line 144 of file LogicalFontInstance.hxx.

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

◆ m_pHbFontUntransformed

hb_font_t* LogicalFontInstance::m_pHbFontUntransformed = nullptr

Definition at line 145 of file LogicalFontInstance.hxx.

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

◆ m_xbIsGraphiteFont

std::optional<bool> LogicalFontInstance::m_xbIsGraphiteFont

Definition at line 148 of file LogicalFontInstance.hxx.

Referenced by IsGraphiteFont().

◆ m_xeFontFamilyEnum

std::optional<FontFamilyEnum> LogicalFontInstance::m_xeFontFamilyEnum

Definition at line 157 of file LogicalFontInstance.hxx.

Referenced by NeedOffsetCorrection().

◆ maUnicodeFallbackList

UnicodeFallbackList LogicalFontInstance::maUnicodeFallbackList

◆ 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

◆ mxFontMetric

ImplFontMetricDataRef LogicalFontInstance::mxFontMetric

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