GL Studio C++ Runtime API
GlsFontRenderer Class Reference

#include <gls_font_renderer.h>

Public Member Functions

unsigned char TextureMinFilter ()
 
void TextureMinFilter (unsigned char val)
 
unsigned char TextureMagFilter ()
 
void TextureMagFilter (unsigned char val)
 
void SetFont (const GlsFontBase *font)
 
void InitRendering (unsigned char textureMinFilter, unsigned char textureMagFilter)
 
void InitRendering ()
 
void TermRendering ()
 
void DrawCharacter (const bool emphasize, const float emphasisOffset, const bool inverse, const GLfloat x1, const GLfloat y1, const GLfloat x2, const GLfloat y2, const GLfloat tx1, const GLfloat ty1, const GLfloat tx2, const GLfloat ty2) const
 
void DrawHalo (const float haloOffset, const float diagonalOffset, const GLfloat x1, const GLfloat y1, const GLfloat x2, const GLfloat y2, const GLfloat tx1, const GLfloat ty1, const GLfloat tx2, const GLfloat ty2) const
 
void DrawShadow (const float shadowOffset, const GLfloat x1, const GLfloat y1, const GLfloat x2, const GLfloat y2, const GLfloat tx1, const GLfloat ty1, const GLfloat tx2, const GLfloat ty2) const
 
 GlsFontRenderer (const GlsFontBase *font)
 

Static Public Member Functions

static void MapTexture (const GLfloat x1, const GLfloat y1, const GLfloat x2, const GLfloat y2, const GLfloat tx1, const GLfloat ty1, const GLfloat tx2, const GLfloat ty2)
 

Protected Member Functions

void SetupTexture (IFontImage *texture)
 

Protected Attributes

GlsColor _currentColor
 
const GlsFontBase_font
 
unsigned char _textureMinFilter
 
unsigned char _textureMagFilter
 

Detailed Description

The GlsFontRenderer object can be used to render characters from a GlsFontBase in Open GL at specific locations and with several different text effects. Prior to rendering any characters, InitRendering must be invoked to set up the proper drawing environment. Then call Render for each character to be drawn.

See also
GlsFontBase

Constructor & Destructor Documentation

GlsFontRenderer ( const GlsFontBase font)
inline

Create a GlsFontRenderer with the default settings.

Parameters
fontThe font to use for rendering. This may be NULL on creation, but it must be set before rendering.

Member Function Documentation

void DrawCharacter ( const bool  emphasize,
const float  emphasisOffset,
const bool  inverse,
const GLfloat  x1,
const GLfloat  y1,
const GLfloat  x2,
const GLfloat  y2,
const GLfloat  tx1,
const GLfloat  ty1,
const GLfloat  tx2,
const GLfloat  ty2 
) const
inline

Draws a character.

Parameters
emphasizetrue if the rendered character should be emphasized. This will essentially bold the character. If a bold font is being used, the character will appear even more bolded.
emphasisOffsetMagnitude of the emhpasis offset. A good value to try is (0.2 * character_width).
inversetrue if the rendered character should be inverse video. This makes the text see-through and it's background the text foreground color.
x1lower left corner x coordinate of the polygon
y1lower left corner y coordinate of the polygon
x2upper right corner x coordinate of the polygon
y2upper right corner y coordinate of the polygon
tx1lower left corner x texture coordinate
ty1lower left corner y texture coordinate
tx2upper right corner x texture coordinate
ty2upper right corner y texture coordinate
void DrawHalo ( const float  haloOffset,
const float  diagonalOffset,
const GLfloat  x1,
const GLfloat  y1,
const GLfloat  x2,
const GLfloat  y2,
const GLfloat  tx1,
const GLfloat  ty1,
const GLfloat  tx2,
const GLfloat  ty2 
) const
inline

Draws a halo effect for the given character.

Parameters
haloOffsetControls the size of the halo GlsTextGrid uses: (emphasize ? 0.05f : 0.03f) * (character_width) (x2 - x1)
x1lower left corner x coordinate of the polygon
y1lower left corner y coordinate of the polygon
x2upper right corner x coordinate of the polygon
y2upper right corner y coordinate of the polygon
tx1lower left corner x texture coordinate
ty1lower left corner y texture coordinate
tx2upper right corner x texture coordinate
ty2upper right corner y texture coordinate
void DrawShadow ( const float  shadowOffset,
const GLfloat  x1,
const GLfloat  y1,
const GLfloat  x2,
const GLfloat  y2,
const GLfloat  tx1,
const GLfloat  ty1,
const GLfloat  tx2,
const GLfloat  ty2 
) const
inline

Draws a drop shadow effect for a character.

Parameters
shadowOffsetdistance to offset the shadow from the character
x1lower left corner x coordinate of the polygon
y1lower left corner y coordinate of the polygon
x2upper right corner x coordinate of the polygon
y2upper right corner y coordinate of the polygon
tx1lower left corner x texture coordinate
ty1lower left corner y texture coordinate
tx2upper right corner x texture coordinate
ty2upper right corner y texture coordinate
void InitRendering ( unsigned char  textureMinFilter,
unsigned char  textureMagFilter 
)
inline

Initializes the font to begin rendering characters. This will set up Open GL texture modes, bind the font's texture, set up minification and magnification filters, etc. This must be called once before invoking Render to draw characters. This version overwrites the texture minification and magnification filters before initializing.

Parameters
textureMinFilterMinification mode for the font texture
textureMagFilterMagnification mode for the font texture
void InitRendering ( )
inline

Initializes the font to begin rendering characters. This will set up Open GL texture modes, bind the font's texture, set up minification and magnification filters, etc. This must be called before using any of the Render methods draw characters.

static void MapTexture ( const GLfloat  x1,
const GLfloat  y1,
const GLfloat  x2,
const GLfloat  y2,
const GLfloat  tx1,
const GLfloat  ty1,
const GLfloat  tx2,
const GLfloat  ty2 
)
inlinestatic

Map a square piece of a texture onto a quad ( assumed to be called between glBegin(GL_QUADS)...glEnd() pair )

Parameters
x1the lower left corner x of the quad
y1the lower left corner y of the quad
x2the upper right corner x of the quad
y2the upper right corner of the quad
tx1lower left corner x texture coordinate
ty1lower left corner y texture coordinate
tx2upper right corner x texture coordinate
ty2upper right corner y texture coordinate
void SetFont ( const GlsFontBase font)
inline

Set the font to use. The font pointer must be set before calling any rendering methods

void SetupTexture ( IFontImage texture)
inlineprotected

Helper method to set up Open GL texture modes, bind the font's texture, set up minification and magnification filters, etc.

void TermRendering ( )
inline

Restores the Open GL state as it was before the call to InitRendering. This should be called after all characters have been rendered using the Render methods.

unsigned char TextureMagFilter ( )
inline

Returns the magnification filter for this font

void TextureMagFilter ( unsigned char  val)
inline

Sets the magnification filter for this font

unsigned char TextureMinFilter ( )
inline

Returns the minification filter for this font

void TextureMinFilter ( unsigned char  val)
inline

Sets the minification filter for this font

Member Data Documentation

GlsColor _currentColor
protected

Current drawing color is kept so we don't have to make an OpenGL call if the color is the same

const GlsFontBase* _font
protected

Pointer to the font to use for rendering

unsigned char _textureMagFilter
protected

Magnification mode for the font texture

unsigned char _textureMinFilter
protected

Minification mode for the font texture


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