JTTFont Class Reference

#include <JTTFont.h>

Collaboration diagram for JTTFont:

List of all members.

Public Types

enum  FONT_LOADING_MODE { MODE_NORMAL, MODE_PRECACHE_ASCII, MODE_PRECACHE_ASCII_EX }
enum  CACHE_IMAGE_SIZE { CACHE_IMAGE_64x64, CACHE_IMAGE_128x128, CACHE_IMAGE_256x256, CACHE_IMAGE_512x512 }

Public Member Functions

 JTTFont (int cacheImageSize=CACHE_IMAGE_256x256)
void SetColor (PIXEL_TYPE color)
void SetAngle (float angle)
bool SetSize (int size)
bool Load (const char *filename, int size=12, int mode=MODE_NORMAL)
bool Load (JTTFont *fontSource, int size=12, int mode=MODE_NORMAL)
void Unload (void)
void RenderString (const u16 *text, float x, float y, int alignment=JGETEXT_LEFT)
void RenderString (const char *text, float x, float y, int alignment=JGETEXT_LEFT)
void RenderString (const u8 *text, float x, float y, int alignment=JGETEXT_LEFT)
void PreCacheString (const u16 *text)
void PreCacheString (const char *text)
void PreCacheString (const u8 *text)
int GetWidth (const u16 *text)
int GetWidth (const char *text)
int GetWidth (const u8 *text)
bool PreCacheASCII ()
bool PreCacheExtendedASCII ()


Detailed Description

True Type font support with the help of Freetype library. JTTFont has a simple caching system so that a character which has been rendered before can be retrieved from the cache instead of drawing it again by the Freetype library. This can give you a much faster rendering speed. Also, if you only need to use a limited number of characters in your game, you can actually cache all your characters in the cache beforehand and unload the font to save memory.

For example, if you only want to use the standard ASCII characters in
your game:
 // in Create()
 mTTFont = new JTTFont();
 mTTFont->Load("arial.ttf", 32);                // size 32
 
 if (mTTFont->PreCacheASCII())
                mTTFont->Unload();
 ...
 
 // in Render()
 mTTFont->RenderString("Hello World!", 240, 80, JGETEXT_CENTER);

Member Enumeration Documentation

enum JTTFont::FONT_LOADING_MODE

Font loading options.

Enumerator:
MODE_NORMAL  Load only.
MODE_PRECACHE_ASCII  Load the font and cache all ASCII characters.
MODE_PRECACHE_ASCII_EX  Load the font and cache all Extended ASCII characters.

enum JTTFont::CACHE_IMAGE_SIZE

Size of the texture used for caching.

Enumerator:
CACHE_IMAGE_64x64  64x64
CACHE_IMAGE_128x128  128x128
CACHE_IMAGE_256x256  256x256
CACHE_IMAGE_512x512  512x512


Constructor & Destructor Documentation

JTTFont::JTTFont ( int  cacheImageSize = CACHE_IMAGE_256x256  ) 

Constructor.

Parameters:
cacheImageSize - Size of the texture used for caching. This can be 64x64, 128x128(default), 256x256 or 512x512.


Member Function Documentation

void JTTFont::SetColor ( PIXEL_TYPE  color  ) 

Set color of font.

Parameters:
color - Font color.

void JTTFont::SetAngle ( float  angle  ) 

Set angle of the font for rendering.

Parameters:
angle - Angle in radians.

bool JTTFont::SetSize ( int  size  ) 

Set font size.

Parameters:
size - Font size.
Note:
Setting font size will clear the cache.

bool JTTFont::Load ( const char *  filename,
int  size = 12,
int  mode = MODE_NORMAL 
)

Load font file.

Parameters:
filename - Name of True Type font.
size - Initial font size. Default is 12.
mode - Loading mode.
Returns:
- True if no error.

bool JTTFont::Load ( JTTFont fontSource,
int  size = 12,
int  mode = MODE_NORMAL 
)

Create font using font data from another JTTFont instance.

Parameters:
fontSource - Source of font data.
size - Initial font size. Default is 12.
mode - Loading mode.
Returns:
- True if no error.

void JTTFont::Unload ( void   ) 

Unload font file and related Freetype objects from memory.

void JTTFont::RenderString ( const u16 *  text,
float  x,
float  y,
int  alignment = JGETEXT_LEFT 
)

Render Unicode string to screen.

Parameters:
text - NULL terminated Unicode-16 string.
x - X position.
y - Y position.
alignment - Text alignment: JGETEXT_LEFT, JGETEXT_RIGHT, JGETEXT_CENTER

void JTTFont::RenderString ( const char *  text,
float  x,
float  y,
int  alignment = JGETEXT_LEFT 
)

Render ASCII string to screen.

Parameters:
text - NULL terminated ASCII string.
x - X position.
y - Y position.
alignment - Text alignment: JGETEXT_LEFT, JGETEXT_RIGHT, JGETEXT_CENTER

void JTTFont::RenderString ( const u8 *  text,
float  x,
float  y,
int  alignment = JGETEXT_LEFT 
)

Render Chinese (GBK) string to screen.

Parameters:
text - NULL terminated GBK encoded string.
x - X position.
y - Y position.
alignment - Text alignment: JGETEXT_LEFT, JGETEXT_RIGHT, JGETEXT_CENTER

void JTTFont::PreCacheString ( const u16 *  text  ) 

Put characters of an Unicode string into cache

Parameters:
text - NULL terminated Unicode-16 string.

void JTTFont::PreCacheString ( const char *  text  ) 

Put characters of an ASCII string into cache.

Parameters:
text - NULL terminated ASCII string.

void JTTFont::PreCacheString ( const u8 *  text  ) 

Put characters of a Chinese (GBK) string into cache.

Parameters:
text - NULL terminated GBK encoded string.

int JTTFont::GetWidth ( const u16 *  text  ) 

Get width of Unicode string on screen.

Parameters:
text - NULL terminated Unicode-16 string.
Returns:
- Width in pixels

int JTTFont::GetWidth ( const char *  text  ) 

Get width of ASCII string on screen.

Parameters:
text - NULL terminated ASCII string.
Returns:
- Width in pixels

int JTTFont::GetWidth ( const u8 *  text  ) 

Get width of Chinese (GBK) string on screen.

Parameters:
text - NULL terminated GBK encoded string.
Returns:
- Width in pixels

bool JTTFont::PreCacheASCII (  ) 

Put all standard ASCII characters (0x20-0x7F) into cache.

Returns:
- True if success.

bool JTTFont::PreCacheExtendedASCII (  ) 

Put all ASCII characters (0x20-0xFF) into cache.

Returns:
- True if success.


Generated on Mon Oct 22 00:28:23 2007 for JGE++ by  doxygen 1.5.3