Angol nyelvű leírás a GLUT dokumentációban
void BitmapText( GLfloat x, GLfloat y, char *string ) { int len, i; glRasterPos2f( x, y ); len = (int) strlen ( string ); for ( i = 0; i < len; i++ ){ glutBitmapCharacter ( GLUT_BITMAP_HELVETICA_18, string[i] ); } }
void StrokeText( char *string ) { int len, i; len = (int) strlen ( string ); for ( i = 0; i < len; i++ ){ glutStrokeCharacter ( GLUT_STROKE_ROMAN, string[i] ); } }
A BitmapText() esetén a szöveg x, y koordinátáját is át kell adni. StrokeText() esetén geometriai transzformációkkal lehet a szöveget pozícionálni.
BitmapText( -5.0, 0.0, "proba szoveg" ); glPushMatrix(); glColor3f( 1.0, 1.0, 0.0 ); glTranslatef( 0.0, 11.0, 0.0 ); glRotatef( 30.0, 0.0, 0.0, 1.0 ); glScalef( 0.1, 0.1, 1.0 ); StrokeText( "proba szoveg" ); glPopMatrix();
static int MenuID, SubMenuID;
/* Almenü készítése */ SubMenuID = glutCreateMenu( ProcessMenu ); glutAddMenuEntry( "Almenu 1. opcioja", 3 ); glutAddMenuEntry( "Almenu 2. opcioja", 4 ); /* Főmenü készítése */ MenuID = glutCreateMenu( ProcessMenu ); glutAddMenuEntry( "1. menupont", 1 ); glutAddMenuEntry( "2. menupont", 2 ); glutAddSubMenu( "Almenu", SubMenuID ); /* Almenü hozzáadása */ glutAddMenuEntry( "Kilepes", 5 ); glutAttachMenu( GLUT_RIGHT_BUTTON ); /* Menü a jobb egérgomb lenyomására jelenik majd meg. */
void ProcessMenu(int value) { switch( value ) { case 1: /* 1. menüpont kiválasztva. */ break; case 2: /* 2. menüpont kiválasztva. */ break; case 3: /* Almenü 1. opciója kiválasztva. */ break; /* És így tovább... */ } glutPostRedisplay(); }