#include <vtkFreeTypeTools.h>


vtkFreeTypeTools provides a low-level interface to the FreeType2 library, including font-cache and rasterization.
Definition at line 54 of file vtkFreeTypeTools.h.
| 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) |
Public Types | |
| typedef vtkObject | Superclass |
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 () |
Static Public Member Functions | |
| static int | IsTypeOf (const char *type) |
| static vtkFreeTypeTools * | SafeDownCast (vtkObject *o) |
| static vtkFreeTypeTools * | GetInstance () |
| static void | SetInstance (vtkFreeTypeTools *instance) |
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 Attributes | |
| bool | ScaleToPowerTwo |
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
Definition at line 183 of file vtkFreeTypeTools.h.
| vtkFreeTypeTools::vtkFreeTypeTools | ( | ) | [protected] |
| virtual vtkFreeTypeTools::~vtkFreeTypeTools | ( | ) | [protected, virtual] |
| 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] |
| 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.
| bool vtkFreeTypeTools::CalculateBoundingBox | ( | vtkTextProperty * | tprop, | |
| const T & | str, | |||
| int | bbox[4] | |||
| ) | [inline, protected] |
This function initializes calculates the size of the required bounding box.
| void vtkFreeTypeTools::PrepareImageData | ( | vtkImageData * | data, | |
| vtkTextProperty * | tprop, | |||
| const T & | str, | |||
| int * | x, | |||
| int * | y | |||
| ) | [inline, protected] |
This function initializes the extent of the ImageData to eventually receive the text stored in str
| bool vtkFreeTypeTools::PopulateImageData | ( | vtkTextProperty * | tprop, | |
| const T & | str, | |||
| int | x, | |||
| int | y, | |||
| vtkImageData * | data | |||
| ) | [inline, 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
bool vtkFreeTypeTools::ScaleToPowerTwo [protected] |
Should the image be scaled to the next highest power of 2?
Definition at line 205 of file vtkFreeTypeTools.h.
1.5.6