GL Studio C++ Runtime API
GlsFontRenderer Class Reference

#include <gls_font_renderer.h>

Public Types

typedef GlsFontBase::Char_t Char_t
 Shorthand for GlsFontBase::Char_t.
 
typedef GlsFontBase::CharAttr_t CharAttr_t
 Shorthand for GlsFontBase::CharAttr_t.
 

Public Member Functions

unsigned char TextureMinFilter ()
 
void TextureMinFilter (unsigned char val)
 
unsigned char TextureMagFilter ()
 
void TextureMagFilter (unsigned char val)
 
void SetFont (const GlsFontBase *font)
 
const GlsFontBaseGetFont ()
 
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 DrawCharacter (const bool emphasize, const float emphasisOffset, 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()

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

◆ DrawCharacter() [1/2]

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.

Deprecated:
inverse no longer has any effect, use the other overload instead.
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).
inverseDeprecated, has no effect
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

◆ DrawCharacter() [2/2]

void DrawCharacter ( const bool  emphasize,
const float  emphasisOffset,
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).
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

◆ DrawHalo()

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)
diagonalOffsetThe offset to use for the four diagonal directions.
x1The lower left corner x coordinate of the polygon.
y1The lower left corner y coordinate of the polygon.
x2The upper right corner x coordinate of the polygon.
y2The upper right corner y coordinate of the polygon.
tx1The lower left corner x texture coordinate.
ty1The lower left corner y texture coordinate.
tx2The upper right corner x texture coordinate.
ty2The upper right corner y texture coordinate.

◆ DrawShadow()

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

◆ GetFont()

const GlsFontBase * GetFont ( )
inline
Returns
A pointer to the font currently in use.

◆ InitRendering() [1/2]

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.

◆ InitRendering() [2/2]

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

◆ MapTexture()

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

◆ SetFont()

void SetFont ( const GlsFontBase font)
inline

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

Parameters
fontThe new font to use.

◆ SetupTexture()

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.

Parameters
textureThe font texture to bind.

◆ TermRendering()

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.

◆ TextureMagFilter() [1/2]

unsigned char TextureMagFilter ( )
inline
Returns
The magnification filter for this font.

◆ TextureMagFilter() [2/2]

void TextureMagFilter ( unsigned char  val)
inline

Sets the magnification filter for this font.

Parameters
valThe new magnification to set.

◆ TextureMinFilter() [1/2]

unsigned char TextureMinFilter ( )
inline
Returns
The minification filter for this font.

◆ TextureMinFilter() [2/2]

void TextureMinFilter ( unsigned char  val)
inline

Sets the minification filter for this font.

Parameters
valThe new minification to set.

Member Data Documentation

◆ _currentColor

GlsColor _currentColor
protected

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

◆ _font

const GlsFontBase* _font
protected

Pointer to the font to use for rendering

◆ _textureMagFilter

unsigned char _textureMagFilter
protected

Magnification mode for the font texture

◆ _textureMinFilter

unsigned char _textureMinFilter
protected

Minification mode for the font texture


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