back TypeServer QuickTour next
Step 5 - Draw Some Text

Now that we have a Strike defined we're ready to draw some text:


    tsCServer  *myServer=NULL;    // pointer to TypeServer instance 
    mgCBitmap  *myBitmap=NULL;    // pointer to Bitmap instance     
    tsCFont    *myTTFont=NULL;    // pointer to TrueType Font instance 
    tsCStrike  *myStrike=NULL;    // pointer to Strike instance     
    FIXPOINT    fxPoint;          // fixed-point x,y-coordinate     
         
    // create a TypeServer, define a bitmap, open a font, create a strike 
    myServer = new tsCServer();
    myBitmap = new mgCBitmap( 1024, 768, 8, NULL );
    myTTFont = new tsCFont( myServer, "arial.ttf", 0, 0 );
    myStrike = new tsCStrike( myTTFont, myBitmap );
    if ( (myServer==NULL) || (myBitmap==NULL) || (myTTFont==NULL) || (myStrike==NULL) ) 
        { /* handle error condition */ }
        
    // set text size and color 
    myStrike->SetTypeSize( IntToFix(12), tsPixels );
    myStrike->SetColorsRGB( RGB_Make(0,0,0), RGB_Make(255,255,255) );

    // draw "Hello World" starting at pixel location (80.0, 100.0) 
    fxPoint.x = IntToFix(80);
    fxPoint.y = IntToFix(100);
    myStrike->DrawStringA( &fxPoint, "Hello World" );

To provide true WYSIWYG accuracy, TypeServer uses fixed-point coordinates based on quick integer math.  Fixed-point coordinates provides sub-pixel accuracy needed to minimize pixel rounding and cummulative positioning errors.

TypeServer includes a complete set of functions for drawing text, and computing character and string dimensions for size-specific CHAR, WCHAR, and generic TCHAR data types: 

tsCStrike:: ASCII
CHAR
Unicode
WCHAR
Generic
TCHAR
get character dimensions GetCharExtentA() GetCharExtentW() GetCharExtentT()
get string dimensions GetStringExtentA() GetStringExtentW() GetStringExtentT()
draw character DrawCharA() DrawCharW() DrawCharT()
draw string DrawStringA() DrawStringW() DrawStringT()

TypeServer Strike and Bitmap

next»


Home | Products | Order | Register | Support | Company | Contact | Feedback

Copyright © 1999-2001 - Metagraphics Software Corporation.