ttfont: code format

This commit is contained in:
David Anderson 2014-01-19 16:52:40 -08:00
parent a2099879c2
commit 09a642295b
2 changed files with 51 additions and 36 deletions

View File

@ -26,7 +26,8 @@
// freetype2 library: http://www.freetype.org/
// this should basically be a drop-in for the old boinc txf_* functions i.e.
// txf_load_fonts and txf_render_string, with extra options on the latter for rotating etc
// txf_load_fonts and txf_render_string,
// with extra options on the latter for rotating etc
// originally adapted by Carl Christensen
@ -41,6 +42,7 @@
#include "filesys.h" // from boinc for file_exists
// I put in it's own namespace so call TTFont::ttf_load_fonts() etc
//
namespace TTFont {
// The Liberation version 2.00.0 fonts referenced below are free
@ -53,6 +55,7 @@ namespace TTFont {
// you'll want to define a 2-d array of char as appropriate for your
// truetype font filenames (path is set in the call to ttf_load_fonts)
//
static const char *g_cstrFont[] = {
"LiberationSans-Regular.ttf", // 0, this is the default
"LiberationSans-Bold.ttf", // 1
@ -74,14 +77,24 @@ static const char *g_cstrFont[] = {
FTFont* g_font[NUM_FONT];
int g_iFont = -1;
// load fonts. call once.
// pass in the font directory, and any special-scaling font name & size (e.g. if I want a huge typeface for Sans-Serif Regular then I pass in "LiberationSans-Regular.ttf", 3000)
void ttf_load_fonts(const char* dir, const char* strScaleFont, const int& iScaleFont) {
static bool bInit = false; // flag so we don't call again, otherwise we'll have memory leaks each subsequent call to new FTTextureFont etc
// Load fonts. call once.
// Pass in the font directory (normally the project directory:
// APP_INIT_DATA::project_dir for BOINC apps),
// and any special-scaling font name & size
// (e.g. if I want a huge typeface for Sans-Serif Regular
// then I pass in "LiberationSans-Regular.ttf", 3000)
//
void ttf_load_fonts(
const char* dir, const char* strScaleFont, const int& iScaleFont
) {
static bool bInit = false;
// flag so we don't call again, otherwise we'll have memory leaks
// each subsequent call to new FTTextureFont etc
if (bInit) return; // we've already been here
bInit = true; // we're in now!
ttf_cleanup();
memset(g_font, 0x00, sizeof(FTFont*) * NUM_FONT); // initialize to null's for error checking later
memset(g_font, 0x00, sizeof(FTFont*) * NUM_FONT);
// initialize to null's for error checking later
char vpath[MAXPATHLEN];
g_iFont = -1;
for (unsigned int i=0 ; i < NUM_FONT; i++){
@ -97,8 +110,7 @@ void ttf_load_fonts(const char* dir, const char* strScaleFont, const int& iScale
#endif
int iScale = 30;
if (strScaleFont && !strcmp(strScaleFont, g_cstrFont[i])) iScale = iScaleFont;
if(!g_font[i]->FaceSize(iScale))
{
if(!g_font[i]->FaceSize(iScale)) {
fprintf(stderr, "Failed to set size");
}
@ -110,7 +122,7 @@ void ttf_load_fonts(const char* dir, const char* strScaleFont, const int& iScale
}
#ifdef _DEBUG
else {
else {
fprintf(stderr, "Failed to load '%s'...\n", vpath);
}
#endif
@ -118,9 +130,9 @@ void ttf_load_fonts(const char* dir, const char* strScaleFont, const int& iScale
}
}
// remove our objects?
void ttf_cleanup()
{
// remove our objects
//
void ttf_cleanup() {
for (unsigned int i = 0; i < NUM_FONT; i++) {
if (g_font[i]) {
delete g_font[i];
@ -143,8 +155,7 @@ void ttf_render_string(
const float& fRotY, // optional rotation vector for Y
const float& fRotZ, // optional rotation vector for Z
const float& fRadius // circular radius to draw along
)
{
) {
// http://ftgl.sourceforge.net/docs/html/
// if requested font isn't available, find first one that is

View File

@ -25,8 +25,9 @@
// ftgl library: http://sourceforge.net/projects/ftgl/files/FTGL%20Source/
// freetype2 library: http://www.freetype.org/
// this should basically be a drop-in for the old boinc txf_* functions i.e.
// txf_load_font and txf_render_string, with extra options on the latter for rotating etc
// this should basically be a drop-in for the old boinc txf_* functions,
// i.e. txf_load_font and txf_render_string,
// with extra options on the latter for rotating etc
// originally adapted by Carl Christensen
@ -34,30 +35,33 @@
#ifndef _TTFONT_H_
#define _TTFONT_H_
// I put in it's own namespace so call TTFont::ttf_load_fonts() etc
// I put in its own namespace so call TTFont::ttf_load_fonts() etc
namespace TTFont {
extern int g_iFont;
extern int g_iFont;
extern void ttf_load_fonts(const char* dir = NULL, const char* strScaleFont = NULL, const int& iScaleFont =30);
extern void ttf_load_fonts(
const char* dir = NULL,
const char* strScaleFont = NULL,
const int& iScaleFont =30
);
extern void ttf_render_string(
const double& x,
const double& y,
const double& z, // text position
const float& fscale, // scale factor
const GLfloat * col, // colour
const char* s, // string ptr
const int& iFont = 0, // font index
const float& fRotAngle = 0.0f, // optional rotation angle
const float& fRotX = 0.0f, // optional rotation vector for X
const float& fRotY = 0.0f, // optional rotation vector for Y
const float& fRotZ = 1.0f, // optional rotation vector for Z
const float& fRadius = 0.0f // circular radius to draw along
);
extern void ttf_render_string(
const double& x,
const double& y,
const double& z, // text position
const float& fscale, // scale factor
const GLfloat * col, // colour
const char* s, // string ptr
const int& iFont = 0, // font index
const float& fRotAngle = 0.0f, // optional rotation angle
const float& fRotX = 0.0f, // optional rotation vector for X
const float& fRotY = 0.0f, // optional rotation vector for Y
const float& fRotZ = 1.0f, // optional rotation vector for Z
const float& fRadius = 0.0f // circular radius to draw along
);
void ttf_cleanup();
void ttf_cleanup();
} // namespace
#endif // inclusion