topical media & game development
lib-of-vs-apps-examples-fontsExample-src-testApp.cpp / cpp
include <testApp.h>
//--------------------------------------------------------------
void testApp::setup(){
// this load font loads the non-full character set
// (ie ASCII 33-128), at size "32"
franklinBook.loadFont("frabk.ttf",32);
// now load another font, but with extended parameters:
// font name, size, anti-aliased, full character set
verdana.loadFont("verdana.ttf",8, false, true);
verdana.setLineHeight(20.0f);
counter = 0;
}
//--------------------------------------------------------------
void testApp::update(){
ofBackground(255,255,255);
counter += 1.0f;
}
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(0x00FF00);
franklinBook.drawString("hello, this is franklin book calling\nanyone home?", 100,100);
ofSetColor(0x000000);
verdana.drawString("hello, I am aliased verdana -- full character set, see: ä ! ", 100,210);
ofSetColor(0x00FF00);
franklinBook.drawString("I can't make an (ä) like you", 100,310);
ofSetColor(0x000000);
verdana.drawString("yeah, but I'm not exactly pretty\nthe problem is with freeType library...\napple has a patent on TTF font hints\nso our aliased type via freeType isn't super looking", 100,380);
ofSetColor(0x00FF00);
franklinBook.drawString("you look ok ! don't worry", 100,520);
//------------------- bounding rectangle :
char tempString[255];
sprintf(tempString,"\%i", (int)counter);
// ok first job to rotate around the center, is to get the bounding box:
ofRectangle rect = franklinBook.getStringBoundingBox(tempString, 0,0);
// this is the actual midpt (x + w/2, y + h/2);
float centerx = rect.x + rect.width / 2;
float centery = rect.y + rect.height / 2;
glPushMatrix();
glTranslatef(100,650,0);
glRotatef(counter, 0,0,1);
// draw type & rect centered around 0,0 (subtract midpt from both):
ofSetColor(0xcccccc);
ofRect(rect.x - centerx, rect.y - centery, rect.width, rect.height);
ofSetColor(0xff3399);
franklinBook.drawString(tempString, -centerx,-centery);
glPopMatrix();
// -------------------------------------
glPushMatrix();
glTranslatef(225,675,0);
glScalef(5,5,1);
ofSetColor(0x333333);
verdana.drawString("scale 5x!",0, 0);
glPopMatrix();
float size = 2 + 2*sin(counter/300.0f);
glPushMatrix();
glTranslatef(520,675,0);
glScalef(size,size,1);
ofSetColor(0x00FF00);
franklinBook.drawString("
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.