EMAN2
|
EMFTGL is an interface for rendering fonts in EMAN2 using FTGL. More...
#include <emftgl.h>
Classes | |
class | EMFTGLFontInstance |
A class for encapsulatiing a particular instance of an FTFont (pointer) Each FTFont is characterised by 5 parameters, them being the font mode, the font file name, the face size, whether or not display lists are being used, and depth (which is redundant, except when the font mode is EXTRUDE). More... | |
class | EMFTGLManager |
A class for managing multiple instances of EMFTGLFontInstances, in particular for caching them, for constructing news ones if they don't exist, and for returning appropriate instances. More... | |
Public Types | |
enum | FontMode { EXTRUDE , PIXMAP , TEXTURE , BITMAP , OUTLINE , POLYGON } |
FontModes correspond to the different FTFont types - this correspondence is EXTRUDE - FTGLExtrdFont, PIXMAP - FTGLPixmapFont TEXTURE - FTGLTextureFont, BITMAP - FTGLBitmapFont OUTLINE - FTGLOutlineFont, POLYGON - FTGLPolygonFont. More... | |
Public Member Functions | |
EMFTGL () | |
Constructor is OS dependent - it attempts to reference an Operating System specific fonts file by default. More... | |
~EMFTGL () | |
Destructor. More... | |
void | render_string (const string &message) |
Render string performs OpenGL rendering of the string using the current state variables of this class. More... | |
vector< float > | bounding_box (const string &message) |
Obtains the bounding box of the given message, as would be rendered using the current state variables of this class. More... | |
void | set_font_file_name (const string &file_name) |
Set the font file name - should be a .ttf file. More... | |
void | set_face_size (const unsigned int size) |
Set the face size of the rendered text. More... | |
void | set_depth (const unsigned int d) |
Set the depth of the rendered text - only useful if this->mode = EXTRUDE. More... | |
void | set_using_display_lists (const bool b) |
Set whether or not the font render should be using display lists. More... | |
void | set_font_mode (const FontMode m) |
Set the font mode. More... | |
string | get_font_file_name () |
Get the name of the current font file in use. More... | |
unsigned int | get_face_size () |
Get the currently used face size. More... | |
unsigned int | get_depth () |
Get the currently used depth. More... | |
bool | get_using_display_lists () |
Get whether or not font renderer is currently using display lists. More... | |
FontMode | get_font_mode () |
Get the current font mode. More... | |
Private Attributes | |
string | font_file_name |
Disallow copy construction. More... | |
unsigned int | face_size |
unsigned int | depth |
bool | use_display_lists |
FontMode | mode |
EMFTGLManager | fm |
EMFTGL is an interface for rendering fonts in EMAN2 using FTGL.
The EMFTGL has an instance of an EMFTGLFontManager which caches FTFonts. Internally, everytime the EMFTGL is asked to render or obtain bounding boxes, it asks its EMFTGLFontManager for an FTFont pointer usng the the current state of all member variables. The EMFTGLFontManager may already have the correct FTFont, or it may have to construct it (and store it for later use, if necessary).
The EMFTGL class is defined in terms of 5 things, them being the font size, whether or not display lists are being used (in FTGL), the font file itself (a .ttf file), the mode of font rendering (TEXTURE, BITMAP etc), and the depth (which is only applicable when the font mode is EXTRUDE in terms of FTGL). These five parameter act as an index when asking the EMFTGLFontManager for the FTFont
The EMFTGLFontManager is intentionally not static - this is because in EMAN2 it is possible to be rendering accross multiple OpenGL contexts. When the EMFTGL destructor is called the associated EMFTGLFontsManager is destroyed all with all of its previously stored FTFont pointers.
FontModes correspond to the different FTFont types - this correspondence is EXTRUDE - FTGLExtrdFont, PIXMAP - FTGLPixmapFont TEXTURE - FTGLTextureFont, BITMAP - FTGLBitmapFont OUTLINE - FTGLOutlineFont, POLYGON - FTGLPolygonFont.
Enumerator | |
---|---|
EXTRUDE | |
PIXMAP | |
TEXTURE | |
BITMAP | |
OUTLINE | |
POLYGON |
Definition at line 98 of file emftgl.h.
|
inline |
Constructor is OS dependent - it attempts to reference an Operating System specific fonts file by default.
Definition at line 83 of file emftgl.h.
vector< float > EMAN::EMFTGL::bounding_box | ( | const string & | message | ) |
Obtains the bounding box of the given message, as would be rendered using the current state variables of this class.
message | the string that will be used to calculate the bounding box |
|
inline |
|
inline |
|
inline |
Get the name of the current font file in use.
Definition at line 143 of file emftgl.h.
References font_file_name.
|
inline |
|
inline |
Get whether or not font renderer is currently using display lists.
Definition at line 152 of file emftgl.h.
References use_display_lists.
void EMAN::EMFTGL::render_string | ( | const string & | message | ) |
Render string performs OpenGL rendering of the string using the current state variables of this class.
message | the string to render |
|
inline |
|
inline |
|
inline |
Set the font file name - should be a .ttf file.
file_name | the font file name - should be a .ttf file |
Definition at line 123 of file emftgl.h.
References font_file_name.
|
inline |
|
inline |
Set whether or not the font render should be using display lists.
Definition at line 136 of file emftgl.h.
References use_display_lists.
|
private |
Definition at line 167 of file emftgl.h.
Referenced by get_depth(), and set_depth().
|
private |
Definition at line 166 of file emftgl.h.
Referenced by get_face_size(), and set_face_size().
|
private |
|
private |
Disallow copy construction.
Disallow Assignment
Definition at line 165 of file emftgl.h.
Referenced by get_font_file_name(), and set_font_file_name().
|
private |
Definition at line 170 of file emftgl.h.
Referenced by get_font_mode(), and set_font_mode().
|
private |
Definition at line 168 of file emftgl.h.
Referenced by get_using_display_lists(), and set_using_display_lists().