VTK  9.3.20240425
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
vtkFreeTypeTools Class Reference

FreeType library support. More...

#include <vtkFreeTypeTools.h>

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

Classes

struct  FaceMetrics
 
struct  GlyphOutline
 

Public Types

typedef vtkObject Superclass
 

Public Member Functions

virtual vtkTypeBool IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class.
 
vtkFreeTypeToolsNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses.
 
FT_Library * GetLibrary ()
 Get the FreeType library singleton.
 
FaceMetrics GetFaceMetrics (vtkTextProperty *tprop)
 Return some metrics about a font face.
 
GlyphOutline GetUnscaledGlyphOutline (vtkTextProperty *tprop, vtkTypeUInt32 charId)
 Return a generic outline of a glyph with some additional metadata.
 
std::array< int, 2 > GetUnscaledKerning (vtkTextProperty *tprop, vtkTypeUInt32 leftChar, vtkTypeUInt32 rightChar)
 Return a 2D vector detailing the unscaled kerning offset for a pair of characters.
 
virtual void SetDebugTextures (bool)
 If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.
 
virtual bool GetDebugTextures ()
 If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.
 
virtual void DebugTexturesOn ()
 If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.
 
virtual void DebugTexturesOff ()
 If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.
 
virtual void SetMaximumNumberOfFaces (unsigned int)
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
virtual unsigned int GetMaximumNumberOfFaces ()
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
virtual void SetMaximumNumberOfSizes (unsigned int)
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
virtual unsigned int GetMaximumNumberOfSizes ()
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
virtual void SetMaximumNumberOfBytes (unsigned long)
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
virtual unsigned long GetMaximumNumberOfBytes ()
 Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.
 
bool GetBoundingBox (vtkTextProperty *tprop, const vtkStdString &str, int dpi, int bbox[4])
 Given a text property and a string, get the bounding box {xmin, xmax, ymin, ymax} of the rendered string in pixels.
 
bool GetMetrics (vtkTextProperty *tprop, const vtkStdString &str, int dpi, vtkTextRenderer::Metrics &metrics)
 Given a text property and a string, get the metrics of the rendered string.
 
bool RenderString (vtkTextProperty *tprop, const vtkStdString &str, int dpi, vtkImageData *data, int textDims[2]=nullptr)
 Given a text property and a string, this function initializes the vtkImageData *data and renders it in a vtkImageData.
 
bool StringToPath (vtkTextProperty *tprop, const vtkStdString &str, int dpi, vtkPath *path)
 Given a text property and a string, this function populates the vtkPath path with the outline of the rendered string.
 
int GetConstrainedFontSize (const vtkStdString &str, vtkTextProperty *tprop, int dpi, int targetWidth, int targetHeight)
 This function returns the font size (in points) required to fit the string in the target rectangle.
 
void MapTextPropertyToId (vtkTextProperty *tprop, size_t *tprop_cache_id)
 Given a text property 'tprop', get its unique ID in our cache framework.
 
void MapIdToTextProperty (size_t tprop_cache_id, vtkTextProperty *tprop)
 Given a text property 'tprop', get its unique ID in our cache framework.
 
virtual void SetScaleToPowerTwo (bool)
 Set whether the image produced should be scaled up to the nearest power of.
 
virtual bool GetScaleToPowerTwo ()
 Set whether the image produced should be scaled up to the nearest power of.
 
virtual void ScaleToPowerTwoOn ()
 Set whether the image produced should be scaled up to the nearest power of.
 
virtual void ScaleToPowerTwoOff ()
 Set whether the image produced should be scaled up to the nearest power of.
 
virtual void SetForceCompiledFonts (bool)
 Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.
 
virtual bool GetForceCompiledFonts ()
 Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.
 
virtual void ForceCompiledFontsOn ()
 Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.
 
virtual void ForceCompiledFontsOff ()
 Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on.
 
virtual void DebugOff ()
 Turn debugging output off.
 
bool GetDebug ()
 Get the value of the debug flag.
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag.
 
virtual void Modified ()
 Update the modification time for this object.
 
virtual vtkMTimeType GetMTime ()
 Return this object's modified time.
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses.
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
vtkTypeBool HasObserver (unsigned long event)
 
vtkTypeBool HasObserver (const char *event)
 
vtkTypeBool InvokeEvent (unsigned long event)
 
vtkTypeBool InvokeEvent (const char *event)
 
std::string GetObjectDescription () const override
 The object description printed in messages and PrintSelf output.
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
vtkTypeBool HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object.
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method.
 
vtkTypeBool InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
vtkTypeBool InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not.
 
virtual void SetObjectName (const std::string &objectName)
 Set/get the name of this object for reporting purposes.
 
virtual std::string GetObjectName () const
 Set/get the name of this object for reporting purposes.
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string.
 
virtual std::string GetObjectDescription () const
 The object description printed in messages and PrintSelf output.
 
virtual vtkTypeBool IsA (const char *name)
 Return 1 if this class is the same type of (or a subclass of) the named class.
 
virtual vtkIdType GetNumberOfGenerationsFromBase (const char *name)
 Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
virtual void Delete ()
 Delete a VTK object.
 
virtual void FastDelete ()
 Delete a reference to this object.
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream.
 
void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object).
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object).
 
int GetReferenceCount ()
 Return the current reference count of this object.
 
void SetReferenceCount (int)
 Sets the reference count.
 
bool GetIsInMemkind () const
 A local state flag that remembers whether this object lives in the normal or extended memory space.
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses.
 
virtual bool UsesGarbageCollector () const
 Indicate whether the class uses vtkGarbageCollector or not.
 

Static Public Member Functions

static vtkTypeBool IsTypeOf (const char *type)
 
static vtkFreeTypeToolsSafeDownCast (vtkObjectBase *o)
 
static vtkFreeTypeToolsGetInstance ()
 Return the singleton instance with no reference counting.
 
static void SetInstance (vtkFreeTypeTools *instance)
 Supply a user defined instance.
 
static vtkTypeUInt16 HashString (const char *str)
 Turn a string into a hash.
 
static vtkTypeUInt32 HashBuffer (const void *buffer, size_t n, vtkTypeUInt32 hash=0)
 Hash a buffer of a given length.
 
static bool LookupFace (vtkTextProperty *tprop, FT_Library lib, FT_Face *face)
 Lookup and set the FreeType font face face best matching the text property tprop using the compiled Arial, Times, and Courier fonts.
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes.
 
static void SetGlobalWarningDisplay (vtkTypeBool val)
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
static vtkTypeBool GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed.
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class.
 
static vtkIdType GetNumberOfGenerationsFromBaseType (const char *name)
 Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class).
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
 
static void SetMemkindDirectory (const char *directoryname)
 The name of a directory, ideally mounted -o dax, to memory map an extended memory space within.
 
static bool GetUsingMemkind ()
 A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space.
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
virtual FT_Error CreateFTCManager ()
 Create the FreeType Cache manager instance and set this->CacheManager.
 
void PrepareImageData (vtkImageData *data, int bbox[4])
 This function initializes the extent of the ImageData to eventually receive the text stored in str.
 
void RenderBackground (vtkTextProperty *tprop, vtkImageData *image, ImageMetaData &metaData)
 Draw the background quad on the image.
 
bool GetSize (vtkTextProperty *tprop, FT_Size *size)
 Given a text property, get the corresponding FreeType size object (a structure storing both a face and a specific size metric).
 
bool GetFace (vtkTextProperty *tprop, FT_Face *face)
 Given a text property, get the corresponding FreeType face.
 
bool GetGlyphIndex (vtkTextProperty *tprop, FT_UInt32 c, FT_UInt *gindex)
 Given a text property and a character, get the corresponding FreeType glyph index.
 
 vtkFreeTypeTools ()
 
 ~vtkFreeTypeTools () override
 
bool GetFace (vtkTextProperty *prop, size_t &prop_cache_id, FT_Face &face, bool &face_has_kerning)
 Attempt to get the typeface of the specified font.
 
void InitializeCacheManager ()
 
void ReleaseCacheManager ()
 
bool PrepareMetaData (vtkTextProperty *tprop, int dpi, MetaData &metaData)
 
bool PrepareImageMetaData (vtkTextProperty *tprop, vtkImageData *image, ImageMetaData &metaData)
 
FT_Bitmap * GetBitmap (FT_UInt32 c, size_t prop_cache_id, int prop_font_size, FT_UInt &gindex, FT_BitmapGlyph &bitmap_glyph)
 Now attempt to get the bitmap for the specified character.
 
FT_Bitmap * GetBitmap (FT_UInt32 c, FTC_Scaler scaler, FT_UInt &gindex, FT_BitmapGlyph &bitmap_glyph)
 Now attempt to get the bitmap for the specified character.
 
FT_Outline * GetOutline (FT_UInt32 c, size_t prop_cache_id, int prop_font_size, FT_UInt &gindex, FT_OutlineGlyph &outline_glyph)
 Attempt to get the outline for the specified character.
 
FT_Outline * GetOutline (FT_UInt32 c, FTC_Scaler scaler, FT_UInt &gindex, FT_OutlineGlyph &outline_glyph)
 Attempt to get the outline for the specified character.
 
FTC_Manager * GetCacheManager ()
 Get the FreeType cache manager, image cache and charmap cache.
 
FTC_ImageCache * GetImageCache ()
 Get the FreeType cache manager, image cache and charmap cache.
 
FTC_CMapCache * GetCMapCache ()
 Get the FreeType cache manager, image cache and charmap cache.
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events.
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events.
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void RegisterInternal (vtkObjectBase *, vtkTypeBool check)
 
virtual void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
virtual void ObjectFinalize ()
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

bool ScaleToPowerTwo
 Should the image be scaled to the next highest power of 2?
 
vtkTextPropertyLookup * TextPropertyLookup
 Lookup table that maps free type font cache face ids to vtkTextProperties.
 
FT_Library * Library
 FreeType library instance.
 
unsigned int MaximumNumberOfFaces
 
unsigned int MaximumNumberOfSizes
 
unsigned long MaximumNumberOfBytes
 
bool ForceCompiledFonts
 
bool DebugTextures
 
FTC_Manager * CacheManager
 The cache manager, image cache and charmap cache.
 
FTC_ImageCache * ImageCache
 The cache manager, image cache and charmap cache.
 
FTC_CMapCache * CMapCache
 The cache manager, image cache and charmap cache.
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
std::string ObjectName
 
- Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Static Protected Attributes

static vtkFreeTypeToolsInstance
 The singleton instance.
 
enum  { GLYPH_REQUEST_DEFAULT = 0 , GLYPH_REQUEST_BITMAP = 1 , GLYPH_REQUEST_OUTLINE = 2 }
 Given a text property and a character, get the corresponding FreeType glyph. More...
 
bool GetGlyph (vtkTextProperty *tprop, FT_UInt32 c, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetSize (size_t tprop_cache_id, int font_size, FT_Size *size)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetSize (FTC_Scaler scaler, FT_Size *size)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetFace (size_t tprop_cache_id, FT_Face *face)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetGlyphIndex (size_t tprop_cache_id, FT_UInt32 c, FT_UInt *gindex)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetGlyph (size_t tprop_cache_id, int font_size, FT_UInt gindex, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)
 Given a text property and a character, get the corresponding FreeType glyph.
 
bool GetGlyph (FTC_Scaler scaler, FT_UInt gindex, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)
 Given a text property and a character, get the corresponding FreeType glyph.
 

Additional Inherited Members

- Static Protected Member Functions inherited from vtkObjectBase
static vtkMallocingFunction GetCurrentMallocFunction ()
 
static vtkReallocingFunction GetCurrentReallocFunction ()
 
static vtkFreeingFunction GetCurrentFreeFunction ()
 
static vtkFreeingFunction GetAlternateFreeFunction ()
 

Detailed Description

FreeType library support.

vtkFreeTypeTools provides a low-level interface to the FreeType2 library, including font-cache and rasterization.

Warning
Internal use only.
Online Examples:

Tests:
vtkFreeTypeTools (Tests)

Definition at line 100 of file vtkFreeTypeTools.h.

Member Typedef Documentation

◆ Superclass

Definition at line 121 of file vtkFreeTypeTools.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

Enumerator
GLYPH_REQUEST_DEFAULT 
GLYPH_REQUEST_BITMAP 
GLYPH_REQUEST_OUTLINE 

Definition at line 365 of file vtkFreeTypeTools.h.

Constructor & Destructor Documentation

◆ vtkFreeTypeTools()

vtkFreeTypeTools::vtkFreeTypeTools ( )
protected

◆ ~vtkFreeTypeTools()

vtkFreeTypeTools::~vtkFreeTypeTools ( )
overrideprotected

Member Function Documentation

◆ IsTypeOf()

static vtkTypeBool vtkFreeTypeTools::IsTypeOf ( const char *  type)
static

◆ IsA()

virtual vtkTypeBool vtkFreeTypeTools::IsA ( const char *  name)
virtual

Return 1 if this class is the same type of (or a subclass of) the named class.

Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObjectBase.

Reimplemented in vtkFontConfigFreeTypeTools.

◆ SafeDownCast()

static vtkFreeTypeTools * vtkFreeTypeTools::SafeDownCast ( vtkObjectBase o)
static

◆ NewInstanceInternal()

virtual vtkObjectBase * vtkFreeTypeTools::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented in vtkFontConfigFreeTypeTools.

◆ NewInstance()

vtkFreeTypeTools * vtkFreeTypeTools::NewInstance ( ) const

◆ PrintSelf()

void vtkFreeTypeTools::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObjectBase.

◆ GetInstance()

static vtkFreeTypeTools * vtkFreeTypeTools::GetInstance ( )
static

Return the singleton instance with no reference counting.

◆ SetInstance()

static void vtkFreeTypeTools::SetInstance ( vtkFreeTypeTools instance)
static

Supply a user defined instance.

Call Delete() on the supplied instance after setting it to fix the reference count.

◆ SetDebugTextures()

virtual void vtkFreeTypeTools::SetDebugTextures ( bool  )
virtual

If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.

◆ GetDebugTextures()

virtual bool vtkFreeTypeTools::GetDebugTextures ( )
virtual

If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.

◆ DebugTexturesOn()

virtual void vtkFreeTypeTools::DebugTexturesOn ( )
virtual

If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.

◆ DebugTexturesOff()

virtual void vtkFreeTypeTools::DebugTexturesOff ( )
virtual

If true, images produced by RenderString will have a transparent grey background and set the justification anchor texel to bright yellow.

◆ GetLibrary()

FT_Library * vtkFreeTypeTools::GetLibrary ( )

Get the FreeType library singleton.

◆ GetFaceMetrics()

FaceMetrics vtkFreeTypeTools::GetFaceMetrics ( vtkTextProperty tprop)

Return some metrics about a font face.

The information is generic and not tied to a single font size, but describes a scalable font defined on the EM square.

◆ GetUnscaledGlyphOutline()

GlyphOutline vtkFreeTypeTools::GetUnscaledGlyphOutline ( vtkTextProperty tprop,
vtkTypeUInt32  charId 
)

Return a generic outline of a glyph with some additional metadata.

The information is generic and not tied to a single font size, but describes a scalable font defined on the EM square.

◆ GetUnscaledKerning()

std::array< int, 2 > vtkFreeTypeTools::GetUnscaledKerning ( vtkTextProperty tprop,
vtkTypeUInt32  leftChar,
vtkTypeUInt32  rightChar 
)

Return a 2D vector detailing the unscaled kerning offset for a pair of characters.

If tprop's font size is 0, the information will be generic and not tied to a single font size, but describe a scalable font defined on the EM square.

◆ SetMaximumNumberOfFaces()

virtual void vtkFreeTypeTools::SetMaximumNumberOfFaces ( unsigned int  )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ GetMaximumNumberOfFaces()

virtual unsigned int vtkFreeTypeTools::GetMaximumNumberOfFaces ( )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ SetMaximumNumberOfSizes()

virtual void vtkFreeTypeTools::SetMaximumNumberOfSizes ( unsigned int  )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ GetMaximumNumberOfSizes()

virtual unsigned int vtkFreeTypeTools::GetMaximumNumberOfSizes ( )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ SetMaximumNumberOfBytes()

virtual void vtkFreeTypeTools::SetMaximumNumberOfBytes ( unsigned long  )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ GetMaximumNumberOfBytes()

virtual unsigned long vtkFreeTypeTools::GetMaximumNumberOfBytes ( )
virtual

Set/Get the maximum number of faces (FT_Face), sizes (FT_Size) and bytes used by the cache.

These settings can be changed as long as it is done prior to accessing any of the caches or the cache manager.

◆ GetBoundingBox()

bool vtkFreeTypeTools::GetBoundingBox ( vtkTextProperty tprop,
const vtkStdString str,
int  dpi,
int  bbox[4] 
)

Given a text property and a string, get the bounding box {xmin, xmax, ymin, ymax} of the rendered string in pixels.

The origin of the bounding box is the anchor point described by the horizontal and vertical justification text property variables. Returns true on success, false otherwise.

See also
GetMetrics

◆ GetMetrics()

bool vtkFreeTypeTools::GetMetrics ( vtkTextProperty tprop,
const vtkStdString str,
int  dpi,
vtkTextRenderer::Metrics metrics 
)

Given a text property and a string, get the metrics of the rendered string.

Returns true on success, false otherwise.

◆ RenderString()

bool vtkFreeTypeTools::RenderString ( vtkTextProperty tprop,
const vtkStdString str,
int  dpi,
vtkImageData data,
int  textDims[2] = nullptr 
)

Given a text property and a string, this function initializes the vtkImageData *data and renders it in a vtkImageData.

textDims, if provided, will be overwritten by the pixel width and height of the rendered string. This is useful when ScaleToPowerOfTwo is true, and the image dimensions may not match the dimensions of the rendered text. The origin of the image's extents is aligned with the anchor point described by the text property's vertical and horizontal justification options.

◆ StringToPath()

bool vtkFreeTypeTools::StringToPath ( vtkTextProperty tprop,
const vtkStdString str,
int  dpi,
vtkPath path 
)

Given a text property and a string, this function populates the vtkPath path with the outline of the rendered string.

The origin of the path coordinates is aligned with the anchor point described by the text property's horizontal and vertical justification options.

◆ GetConstrainedFontSize()

int vtkFreeTypeTools::GetConstrainedFontSize ( const vtkStdString str,
vtkTextProperty tprop,
int  dpi,
int  targetWidth,
int  targetHeight 
)

This function returns the font size (in points) required to fit the string in the target rectangle.

The font size of tprop is updated to the computed value as well. If an error occurs, -1 is returned.

◆ HashString()

static vtkTypeUInt16 vtkFreeTypeTools::HashString ( const char *  str)
static

Turn a string into a hash.

This is not a general purpose hash function, and is only used to generate identifiers for cached fonts.

◆ HashBuffer()

static vtkTypeUInt32 vtkFreeTypeTools::HashBuffer ( const void *  buffer,
size_t  n,
vtkTypeUInt32  hash = 0 
)
static

Hash a buffer of a given length.

This function hashes n bytes and does not depend on a terminating null character.

◆ MapTextPropertyToId()

void vtkFreeTypeTools::MapTextPropertyToId ( vtkTextProperty tprop,
size_t *  tprop_cache_id 
)

Given a text property 'tprop', get its unique ID in our cache framework.

In the same way, given a unique ID in our cache, retrieve the corresponding text property and assign its parameters to 'tprop'. Warning: there is no one to one mapping between a single text property the corresponding ID, and vice-versa. The ID is just a fast hash, a binary mask concatenating the attributes of the text property that are relevant to our cache (Color, Opacity, Justification setting are not stored).

◆ MapIdToTextProperty()

void vtkFreeTypeTools::MapIdToTextProperty ( size_t  tprop_cache_id,
vtkTextProperty tprop 
)

Given a text property 'tprop', get its unique ID in our cache framework.

In the same way, given a unique ID in our cache, retrieve the corresponding text property and assign its parameters to 'tprop'. Warning: there is no one to one mapping between a single text property the corresponding ID, and vice-versa. The ID is just a fast hash, a binary mask concatenating the attributes of the text property that are relevant to our cache (Color, Opacity, Justification setting are not stored).

◆ SetScaleToPowerTwo()

virtual void vtkFreeTypeTools::SetScaleToPowerTwo ( bool  )
virtual

Set whether the image produced should be scaled up to the nearest power of.

  1. This is normally required for older graphics cards where all textures must be a power of 2. This defaults to false, and should be fine on modern hardware.

◆ GetScaleToPowerTwo()

virtual bool vtkFreeTypeTools::GetScaleToPowerTwo ( )
virtual

Set whether the image produced should be scaled up to the nearest power of.

  1. This is normally required for older graphics cards where all textures must be a power of 2. This defaults to false, and should be fine on modern hardware.

◆ ScaleToPowerTwoOn()

virtual void vtkFreeTypeTools::ScaleToPowerTwoOn ( )
virtual

Set whether the image produced should be scaled up to the nearest power of.

  1. This is normally required for older graphics cards where all textures must be a power of 2. This defaults to false, and should be fine on modern hardware.

◆ ScaleToPowerTwoOff()

virtual void vtkFreeTypeTools::ScaleToPowerTwoOff ( )
virtual

Set whether the image produced should be scaled up to the nearest power of.

  1. This is normally required for older graphics cards where all textures must be a power of 2. This defaults to false, and should be fine on modern hardware.

◆ SetForceCompiledFonts()

virtual void vtkFreeTypeTools::SetForceCompiledFonts ( bool  )
virtual

Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.

Useful for generating test images consistently across platforms. This flag is on by default.

◆ GetForceCompiledFonts()

virtual bool vtkFreeTypeTools::GetForceCompiledFonts ( )
virtual

Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.

Useful for generating test images consistently across platforms. This flag is on by default.

◆ ForceCompiledFontsOn()

virtual void vtkFreeTypeTools::ForceCompiledFontsOn ( )
virtual

Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.

Useful for generating test images consistently across platforms. This flag is on by default.

◆ ForceCompiledFontsOff()

virtual void vtkFreeTypeTools::ForceCompiledFontsOff ( )
virtual

Force use of the fonts compiled into VTK, ignoring any FontConfig or embedded fonts.

Useful for generating test images consistently across platforms. This flag is on by default.

◆ LookupFace()

static bool vtkFreeTypeTools::LookupFace ( vtkTextProperty tprop,
FT_Library  lib,
FT_Face *  face 
)
static

Lookup and set the FreeType font face face best matching the text property tprop using the compiled Arial, Times, and Courier fonts.

If an unrecognized font family is requested, Arial will be substituted. Returns true if the face is set, false otherwise.

◆ CreateFTCManager()

virtual FT_Error vtkFreeTypeTools::CreateFTCManager ( )
protectedvirtual

Create the FreeType Cache manager instance and set this->CacheManager.

Reimplemented in vtkFontConfigFreeTypeTools.

◆ PrepareMetaData()

bool vtkFreeTypeTools::PrepareMetaData ( vtkTextProperty tprop,
int  dpi,
MetaData &  metaData 
)
protected

◆ PrepareImageMetaData()

bool vtkFreeTypeTools::PrepareImageMetaData ( vtkTextProperty tprop,
vtkImageData image,
ImageMetaData &  metaData 
)
protected

◆ PrepareImageData()

void vtkFreeTypeTools::PrepareImageData ( vtkImageData data,
int  bbox[4] 
)
protected

This function initializes the extent of the ImageData to eventually receive the text stored in str.

◆ RenderBackground()

void vtkFreeTypeTools::RenderBackground ( vtkTextProperty tprop,
vtkImageData image,
ImageMetaData &  metaData 
)
protected

Draw the background quad on the image.

◆ GetSize() [1/3]

bool vtkFreeTypeTools::GetSize ( vtkTextProperty tprop,
FT_Size *  size 
)
protected

Given a text property, get the corresponding FreeType size object (a structure storing both a face and a specific size metric).

The size setting of the text property is used to set the size's face to the corresponding size. Return true on success, false otherwise.

◆ GetFace() [1/3]

bool vtkFreeTypeTools::GetFace ( vtkTextProperty tprop,
FT_Face *  face 
)
protected

Given a text property, get the corresponding FreeType face.

The size parameter of the text property is ignored and a face with unknown current size is returned. Use GetSize() to get a specific size. Return true on success, false otherwise

◆ GetGlyphIndex() [1/2]

bool vtkFreeTypeTools::GetGlyphIndex ( vtkTextProperty tprop,
FT_UInt32  c,
FT_UInt *  gindex 
)
protected

Given a text property and a character, get the corresponding FreeType glyph index.

Return true on success, false otherwise

◆ GetGlyph() [1/3]

bool vtkFreeTypeTools::GetGlyph ( vtkTextProperty tprop,
FT_UInt32  c,
FT_Glyph *  glyph,
int  request = GLYPH_REQUEST_DEFAULT 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetSize() [2/3]

bool vtkFreeTypeTools::GetSize ( size_t  tprop_cache_id,
int  font_size,
FT_Size *  size 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetSize() [3/3]

bool vtkFreeTypeTools::GetSize ( FTC_Scaler  scaler,
FT_Size *  size 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetFace() [2/3]

bool vtkFreeTypeTools::GetFace ( size_t  tprop_cache_id,
FT_Face *  face 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetGlyphIndex() [2/2]

bool vtkFreeTypeTools::GetGlyphIndex ( size_t  tprop_cache_id,
FT_UInt32  c,
FT_UInt *  gindex 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetGlyph() [2/3]

bool vtkFreeTypeTools::GetGlyph ( size_t  tprop_cache_id,
int  font_size,
FT_UInt  gindex,
FT_Glyph *  glyph,
int  request = GLYPH_REQUEST_DEFAULT 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetGlyph() [3/3]

bool vtkFreeTypeTools::GetGlyph ( FTC_Scaler  scaler,
FT_UInt  gindex,
FT_Glyph *  glyph,
int  request = GLYPH_REQUEST_DEFAULT 
)
protected

Given a text property and a character, get the corresponding FreeType glyph.

The 'request' parameter can be used to request the glyph to be in a specific format. If GLYPH_REQUEST_DEFAULT, the glyph might be either an outline (most of the time) or a bitmap if the face includes a set of pre-rendered glyphs (called "strikes") for a given size. If GLYPH_REQUEST_BITMAP, the glyph is rendered immediately and can be safely cast to a FT_BitmapGlyph. If GLYPH_REQUEST_OUTLINE, no pre-rendered "strike" is considered, the glyph is an outline and can be safely cast to a FT_OutlineGlyph. Return true on success, false otherwise

◆ GetFace() [3/3]

bool vtkFreeTypeTools::GetFace ( vtkTextProperty prop,
size_t &  prop_cache_id,
FT_Face &  face,
bool &  face_has_kerning 
)
protected

Attempt to get the typeface of the specified font.

◆ GetBitmap() [1/2]

FT_Bitmap * vtkFreeTypeTools::GetBitmap ( FT_UInt32  c,
size_t  prop_cache_id,
int  prop_font_size,
FT_UInt &  gindex,
FT_BitmapGlyph &  bitmap_glyph 
)
protected

Now attempt to get the bitmap for the specified character.

◆ GetBitmap() [2/2]

FT_Bitmap * vtkFreeTypeTools::GetBitmap ( FT_UInt32  c,
FTC_Scaler  scaler,
FT_UInt &  gindex,
FT_BitmapGlyph &  bitmap_glyph 
)
protected

Now attempt to get the bitmap for the specified character.

◆ GetOutline() [1/2]

FT_Outline * vtkFreeTypeTools::GetOutline ( FT_UInt32  c,
size_t  prop_cache_id,
int  prop_font_size,
FT_UInt &  gindex,
FT_OutlineGlyph &  outline_glyph 
)
protected

Attempt to get the outline for the specified character.

◆ GetOutline() [2/2]

FT_Outline * vtkFreeTypeTools::GetOutline ( FT_UInt32  c,
FTC_Scaler  scaler,
FT_UInt &  gindex,
FT_OutlineGlyph &  outline_glyph 
)
protected

Attempt to get the outline for the specified character.

◆ GetCacheManager()

FTC_Manager * vtkFreeTypeTools::GetCacheManager ( )
protected

Get the FreeType cache manager, image cache and charmap cache.

◆ GetImageCache()

FTC_ImageCache * vtkFreeTypeTools::GetImageCache ( )
protected

Get the FreeType cache manager, image cache and charmap cache.

◆ GetCMapCache()

FTC_CMapCache * vtkFreeTypeTools::GetCMapCache ( )
protected

Get the FreeType cache manager, image cache and charmap cache.

◆ InitializeCacheManager()

void vtkFreeTypeTools::InitializeCacheManager ( )
protected

◆ ReleaseCacheManager()

void vtkFreeTypeTools::ReleaseCacheManager ( )
protected

Member Data Documentation

◆ ScaleToPowerTwo

bool vtkFreeTypeTools::ScaleToPowerTwo
protected

Should the image be scaled to the next highest power of 2?

Definition at line 386 of file vtkFreeTypeTools.h.

◆ Instance

vtkFreeTypeTools* vtkFreeTypeTools::Instance
staticprotected

The singleton instance.

Definition at line 419 of file vtkFreeTypeTools.h.

◆ TextPropertyLookup

vtkTextPropertyLookup* vtkFreeTypeTools::TextPropertyLookup
protected

Lookup table that maps free type font cache face ids to vtkTextProperties.

Definition at line 424 of file vtkFreeTypeTools.h.

◆ Library

FT_Library* vtkFreeTypeTools::Library
protected

FreeType library instance.

Definition at line 429 of file vtkFreeTypeTools.h.

◆ CacheManager

FTC_Manager* vtkFreeTypeTools::CacheManager
protected

The cache manager, image cache and charmap cache.

Definition at line 435 of file vtkFreeTypeTools.h.

◆ ImageCache

FTC_ImageCache* vtkFreeTypeTools::ImageCache
protected

The cache manager, image cache and charmap cache.

Definition at line 436 of file vtkFreeTypeTools.h.

◆ CMapCache

FTC_CMapCache* vtkFreeTypeTools::CMapCache
protected

The cache manager, image cache and charmap cache.

Definition at line 437 of file vtkFreeTypeTools.h.

◆ MaximumNumberOfFaces

unsigned int vtkFreeTypeTools::MaximumNumberOfFaces
protected

Definition at line 449 of file vtkFreeTypeTools.h.

◆ MaximumNumberOfSizes

unsigned int vtkFreeTypeTools::MaximumNumberOfSizes
protected

Definition at line 450 of file vtkFreeTypeTools.h.

◆ MaximumNumberOfBytes

unsigned long vtkFreeTypeTools::MaximumNumberOfBytes
protected

Definition at line 451 of file vtkFreeTypeTools.h.

◆ ForceCompiledFonts

bool vtkFreeTypeTools::ForceCompiledFonts
protected

Definition at line 453 of file vtkFreeTypeTools.h.

◆ DebugTextures

bool vtkFreeTypeTools::DebugTextures
protected

Definition at line 454 of file vtkFreeTypeTools.h.


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