VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkFreeTypeTools Class Reference

FreeType library support. More...

#include <vtkFreeTypeTools.h>

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

List of all members.

Public Types

typedef vtkObject Superclass
- Public Types inherited from vtkObject

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
FT_Library * GetLibrary ()
virtual void SetMaximumNumberOfFaces (unsigned int)
virtual unsigned int GetMaximumNumberOfFaces ()
virtual void SetMaximumNumberOfSizes (unsigned int)
virtual unsigned int GetMaximumNumberOfSizes ()
virtual void SetMaximumNumberOfBytes (unsigned long)
virtual unsigned long GetMaximumNumberOfBytes ()
bool GetBoundingBox (vtkTextProperty *tprop, const vtkStdString &str, int bbox[4])
bool GetBoundingBox (vtkTextProperty *tprop, const vtkUnicodeString &str, int bbox[4])
bool IsBoundingBoxValid (int bbox[4])
bool RenderString (vtkTextProperty *tprop, const vtkStdString &str, vtkImageData *data)
bool RenderString (vtkTextProperty *tprop, const vtkUnicodeString &str, vtkImageData *data)
void MapTextPropertyToId (vtkTextProperty *tprop, unsigned long *tprop_cache_id)
void MapIdToTextProperty (unsigned long tprop_cache_id, vtkTextProperty *tprop)
virtual void SetScaleToPowerTwo (bool)
virtual bool GetScaleToPowerTwo ()
virtual void ScaleToPowerTwoOn ()
virtual void ScaleToPowerTwoOff ()
- Public Member Functions inherited from vtkObject
virtual void DebugOn ()
virtual void DebugOff ()
unsigned char GetDebug ()
void SetDebug (unsigned char debugFlag)
virtual void Modified ()
virtual unsigned long GetMTime ()
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
vtkCommandGetCommand (unsigned long tag)
void RemoveObserver (vtkCommand *)
void RemoveObservers (unsigned long event, vtkCommand *)
void RemoveObservers (const char *event, vtkCommand *)
int HasObserver (unsigned long event, vtkCommand *)
int HasObserver (const char *event, vtkCommand *)
void RemoveObserver (unsigned long tag)
void RemoveObservers (unsigned long event)
void RemoveObservers (const char *event)
void RemoveAllObservers ()
int HasObserver (unsigned long event)
int HasObserver (const char *event)
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
int InvokeEvent (unsigned long event, void *callData)
int InvokeEvent (const char *event, void *callData)
int InvokeEvent (unsigned long event)
int InvokeEvent (const char *event)
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
virtual void Delete ()
virtual void FastDelete ()
void Print (ostream &os)
virtual void Register (vtkObjectBase *o)
virtual void UnRegister (vtkObjectBase *o)
void SetReferenceCount (int)
void PrintRevisions (ostream &os)
virtual void PrintHeader (ostream &os, vtkIndent indent)
virtual void PrintTrailer (ostream &os, vtkIndent indent)
int GetReferenceCount ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkFreeTypeToolsSafeDownCast (vtkObject *o)
static vtkFreeTypeToolsGetInstance ()
static void SetInstance (vtkFreeTypeTools *instance)
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
static void BreakOnError ()
static void SetGlobalWarningDisplay (int val)
static void GlobalWarningDisplayOn ()
static void GlobalWarningDisplayOff ()
static int GetGlobalWarningDisplay ()

Protected Member Functions

bool GetSize (vtkTextProperty *tprop, FT_Size *size)
bool GetFace (vtkTextProperty *tprop, FT_Face *face)
bool GetGlyphIndex (vtkTextProperty *tprop, FT_UInt32 c, FT_UInt *gindex)
 vtkFreeTypeTools ()
virtual ~vtkFreeTypeTools ()
template<typename T >
bool CalculateBoundingBox (vtkTextProperty *tprop, const T &str, int bbox[4])
template<typename T >
void PrepareImageData (vtkImageData *data, vtkTextProperty *tprop, const T &str, int *x, int *y)
template<typename T >
bool PopulateImageData (vtkTextProperty *tprop, const T &str, int x, int y, vtkImageData *data)
- Protected Member Functions inherited from vtkObject
 vtkObject ()
virtual ~vtkObject ()
virtual void RegisterInternal (vtkObjectBase *, int check)
virtual void UnRegisterInternal (vtkObjectBase *, int check)
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
void InternalReleaseFocus ()
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
virtual ~vtkObjectBase ()
virtual void CollectRevisions (ostream &os)
virtual void ReportReferences (vtkGarbageCollector *)
 vtkObjectBase (const vtkObjectBase &)
void operator= (const vtkObjectBase &)

Protected Attributes

bool ScaleToPowerTwo
- Protected Attributes inherited from vtkObject
unsigned char Debug
vtkTimeStamp MTime
vtkSubjectHelper * SubjectHelper
- Protected Attributes inherited from vtkObjectBase
int ReferenceCount
vtkWeakPointerBase ** WeakPointers
enum  { GLYPH_REQUEST_DEFAULT = 0, GLYPH_REQUEST_BITMAP = 1, GLYPH_REQUEST_OUTLINE = 2 }
bool GetGlyph (vtkTextProperty *tprop, FT_UInt32 c, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)
bool GetSize (unsigned long tprop_cache_id, int font_size, FT_Size *size)
bool GetFace (unsigned long tprop_cache_id, FT_Face *face)
bool GetGlyphIndex (unsigned long tprop_cache_id, FT_UInt32 c, FT_UInt *gindex)
bool GetGlyph (unsigned long tprop_cache_id, int font_size, FT_UInt gindex, FT_Glyph *glyph, int request=GLYPH_REQUEST_DEFAULT)

Additional Inherited Members


Detailed Description

FreeType library support.

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

Warning:
Internal use only.

Definition at line 54 of file vtkFreeTypeTools.h.


Member Typedef Documentation

Reimplemented from vtkObject.

Definition at line 57 of file vtkFreeTypeTools.h.


Member Enumeration Documentation

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 183 of file vtkFreeTypeTools.h.


Constructor & Destructor Documentation

vtkFreeTypeTools::vtkFreeTypeTools ( )
protected
virtual vtkFreeTypeTools::~vtkFreeTypeTools ( )
protectedvirtual

Member Function Documentation

virtual const char* vtkFreeTypeTools::GetClassName ( )
virtual

Reimplemented from vtkObject.

static int vtkFreeTypeTools::IsTypeOf ( const char *  name)
static

Return 1 if this class type 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 vtkObject.

virtual int 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 vtkObject.

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

Reimplemented from vtkObject.

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

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 vtkObject.

static vtkFreeTypeTools* vtkFreeTypeTools::GetInstance ( )
static

Return the singleton instance with no reference counting.

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.

FT_Library* vtkFreeTypeTools::GetLibrary ( )

Get the FreeType library singleton.

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.

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.

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.

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.

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.

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.

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

Given a text property and a string, get the bounding box [xmin, xmax] x [ymin, ymax]. Note that this is the bounding box of the area where actual pixels will be written, given a text/pen/baseline location of (0,0). For example, if the string starts with a 'space', or depending on the orientation, you can end up with a [-20, -10] x [5, 10] bbox (the math to get the real bbox is straightforward). Return 1 on success, 0 otherwise. You can use IsBoundingBoxValid() to test if the computed bbox is valid (it may not if GetBoundingBox() failed or if the string was empty).

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

Given a text property and a string, get the bounding box [xmin, xmax] x [ymin, ymax]. Note that this is the bounding box of the area where actual pixels will be written, given a text/pen/baseline location of (0,0). For example, if the string starts with a 'space', or depending on the orientation, you can end up with a [-20, -10] x [5, 10] bbox (the math to get the real bbox is straightforward). Return 1 on success, 0 otherwise. You can use IsBoundingBoxValid() to test if the computed bbox is valid (it may not if GetBoundingBox() failed or if the string was empty).

bool vtkFreeTypeTools::IsBoundingBoxValid ( int  bbox[4])

Given a text property and a string, get the bounding box [xmin, xmax] x [ymin, ymax]. Note that this is the bounding box of the area where actual pixels will be written, given a text/pen/baseline location of (0,0). For example, if the string starts with a 'space', or depending on the orientation, you can end up with a [-20, -10] x [5, 10] bbox (the math to get the real bbox is straightforward). Return 1 on success, 0 otherwise. You can use IsBoundingBoxValid() to test if the computed bbox is valid (it may not if GetBoundingBox() failed or if the string was empty).

bool vtkFreeTypeTools::RenderString ( vtkTextProperty tprop,
const vtkStdString str,
vtkImageData data 
)

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

bool vtkFreeTypeTools::RenderString ( vtkTextProperty tprop,
const vtkUnicodeString str,
vtkImageData data 
)

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

void vtkFreeTypeTools::MapTextPropertyToId ( vtkTextProperty tprop,
unsigned long *  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).

void vtkFreeTypeTools::MapIdToTextProperty ( unsigned long  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).

virtual void vtkFreeTypeTools::SetScaleToPowerTwo ( bool  )
virtual

Set whether the image produced should be scaled up to the nearest power of 2. 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.

virtual bool vtkFreeTypeTools::GetScaleToPowerTwo ( )
virtual

Set whether the image produced should be scaled up to the nearest power of 2. 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.

virtual void vtkFreeTypeTools::ScaleToPowerTwoOn ( )
virtual

Set whether the image produced should be scaled up to the nearest power of 2. 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.

virtual void vtkFreeTypeTools::ScaleToPowerTwoOff ( )
virtual

Set whether the image produced should be scaled up to the nearest power of 2. 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.

template<typename T >
bool vtkFreeTypeTools::CalculateBoundingBox ( vtkTextProperty tprop,
const T &  str,
int  bbox[4] 
)
protected

This function initializes calculates the size of the required bounding box.

template<typename T >
void vtkFreeTypeTools::PrepareImageData ( vtkImageData data,
vtkTextProperty tprop,
const T &  str,
int *  x,
int *  y 
)
protected

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

template<typename T >
bool vtkFreeTypeTools::PopulateImageData ( vtkTextProperty tprop,
const T &  str,
int  x,
int  y,
vtkImageData data 
)
protected

Internal helper method called by RenderString

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.

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

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

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

bool vtkFreeTypeTools::GetSize ( unsigned long  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

bool vtkFreeTypeTools::GetFace ( unsigned long  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

bool vtkFreeTypeTools::GetGlyphIndex ( unsigned long  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

bool vtkFreeTypeTools::GetGlyph ( unsigned long  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


Member Data Documentation

bool vtkFreeTypeTools::ScaleToPowerTwo
protected

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

Definition at line 205 of file vtkFreeTypeTools.h.


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