#include <emftgl.h>
Collaboration diagram for EMAN::EMFTGL:
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. | |
~EMFTGL () | |
Destructor. | |
void | render_string (const string &message) |
Render string performs OpenGL rendering of the string using the current state variables of this class. | |
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. | |
void | set_font_file_name (const string &file_name) |
Set the font file name - should be a .ttf file. | |
void | set_face_size (const unsigned int size) |
Set the face size of the rendered text. | |
void | set_depth (const unsigned int d) |
Set the depth of the rendered text - only useful if this->mode = EXTRUDE. | |
void | set_using_display_lists (const bool b) |
Set whether or not the font render should be using display lists. | |
void | set_font_mode (const FontMode m) |
Set the font mode. | |
string | get_font_file_name () |
Get the name of the current font file in use. | |
unsigned int | get_face_size () |
Get the currently used face size. | |
unsigned int | get_depth () |
Get the currently used depth. | |
bool | get_using_display_lists () |
Get whether or not font renderer is currently using display lists. | |
FontMode | get_font_mode () |
Get the current font mode. | |
Private Attributes | |
string | font_file_name |
Disallow Assignment. | |
unsigned int | face_size |
unsigned int | depth |
bool | use_display_lists |
FontMode | mode |
EMFTGLManager | fm |
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.
Definition at line 81 of file emftgl.h.
|
FontModes correspond to the different FTFont types - this correspondence is EXTRUDE - FTGLExtrdFont, PIXMAP - FTGLPixmapFont TEXTURE - FTGLTextureFont, BITMAP - FTGLBitmapFont OUTLINE - FTGLOutlineFont, POLYGON - FTGLPolygonFont.
Definition at line 108 of file emftgl.h. 00108 { 00109 EXTRUDE, 00110 PIXMAP, 00111 TEXTURE, 00112 BITMAP, 00113 OUTLINE, 00114 POLYGON 00115 };
|
|
Constructor is OS dependent - it attempts to reference an Operating System specific fonts file by default.
Definition at line 93 of file emftgl.h. 00093 : font_file_name("/usr/share/fonts/dejavu/DejaVuSerif.ttf"), face_size(32), depth(32), use_display_lists(true), mode(TEXTURE) {};
|
|
Destructor.
Definition at line 100 of file emftgl.h. 00100 {};
|
|
Obtains the bounding box of the given message, as would be rendered using the current state variables of this class.
|
|
Get the currently used depth.
Definition at line 159 of file emftgl.h. 00159 { return depth; }
|
|
Get the currently used face size.
Definition at line 156 of file emftgl.h. 00156 {return face_size; }
|
|
Get the name of the current font file in use.
Definition at line 153 of file emftgl.h. 00153 { return font_file_name; }
|
|
Get the current font mode.
Definition at line 165 of file emftgl.h. 00165 { return mode; }
|
|
Get whether or not font renderer is currently using display lists.
Definition at line 162 of file emftgl.h. 00162 { return use_display_lists; }
|
|
Render string performs OpenGL rendering of the string using the current state variables of this class.
|
|
Set the depth of the rendered text - only useful if this->mode = EXTRUDE.
Definition at line 142 of file emftgl.h. 00142 { depth = d; }
|
|
Set the face size of the rendered text.
Definition at line 138 of file emftgl.h. 00138 { face_size = size; }
|
|
Set the font file name - should be a .ttf file.
Definition at line 133 of file emftgl.h. 00133 { font_file_name = file_name; }
|
|
Set the font mode.
Definition at line 150 of file emftgl.h. 00150 { mode = m; }
|
|
Set whether or not the font render should be using display lists.
Definition at line 146 of file emftgl.h. 00146 { use_display_lists = b; }
|
|
|
|
|
|
|
|
Disallow Assignment.
|
|
|
|
|