topical media & game development

talk show tell print

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("k@!%",0, 0);
          glPopMatrix();
          
  }
  
  //--------------------------------------------------------------
  void testApp::keyPressed  (int key){ 
          
  }
  
  //--------------------------------------------------------------
  void testApp::keyReleased(int key){ 
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseMoved(int x, int y ){
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseDragged(int x, int y, int button){
          
  }
  
  //--------------------------------------------------------------
  void testApp::mousePressed(int x, int y, int button){
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseReleased(int x, int y, int button){
  
  }
  
  //--------------------------------------------------------------
  void testApp::resized(int w, int h){
  
  }
  


(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.