#include <emftgl.h>
Collaboration diagram for EMAN::EMFTGL:
Public Types | |
EXTRUDE | |
PIXMAP | |
TEXTURE | |
BITMAP | |
OUTLINE | |
POLYGON | |
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 |
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... |
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 };
EMAN::EMFTGL::EMFTGL | ( | ) | [inline] |
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) {};
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 |
unsigned int EMAN::EMFTGL::get_depth | ( | ) | [inline] |
unsigned int EMAN::EMFTGL::get_face_size | ( | ) | [inline] |
string EMAN::EMFTGL::get_font_file_name | ( | ) | [inline] |
Get the name of the current font file in use.
Definition at line 153 of file emftgl.h.
References font_file_name.
00153 { return font_file_name; }
FontMode EMAN::EMFTGL::get_font_mode | ( | ) | [inline] |
bool EMAN::EMFTGL::get_using_display_lists | ( | ) | [inline] |
Get whether or not font renderer is currently using display lists.
Definition at line 162 of file emftgl.h.
References use_display_lists.
00162 { return 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 |
void EMAN::EMFTGL::set_depth | ( | const unsigned int | d | ) | [inline] |
void EMAN::EMFTGL::set_face_size | ( | const unsigned int | size | ) | [inline] |
void EMAN::EMFTGL::set_font_file_name | ( | const string & | file_name | ) | [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 133 of file emftgl.h.
References font_file_name.
00133 { font_file_name = file_name; }
void EMAN::EMFTGL::set_font_mode | ( | const FontMode | m | ) | [inline] |
void EMAN::EMFTGL::set_using_display_lists | ( | const bool | b | ) | [inline] |
Set whether or not the font render should be using display lists.
Definition at line 146 of file emftgl.h.
References use_display_lists.
00146 { use_display_lists = b; }
unsigned int EMAN::EMFTGL::depth [private] |
unsigned int EMAN::EMFTGL::face_size [private] |
EMFTGLManager EMAN::EMFTGL::fm [private] |
string EMAN::EMFTGL::font_file_name [private] |
Disallow Assignment.
Definition at line 175 of file emftgl.h.
Referenced by get_font_file_name(), and set_font_file_name().
FontMode EMAN::EMFTGL::mode [private] |
bool EMAN::EMFTGL::use_display_lists [private] |
Definition at line 178 of file emftgl.h.
Referenced by get_using_display_lists(), and set_using_display_lists().