2011-06-25 15 views
1

私はいくつかの単純なテキストを表示するには、次のコードを使用:異なるサイズの単純なテキストを表示するOpenGLコード?

void output(GLfloat x, GLfloat y, char *format,...) 
{ 
    va_list args; 
    char buffer[200], *p; 

    va_start(args, format); 
    vsprintf(buffer, format, args); 
    va_end(args); 
    glPushMatrix(); 
    glLoadIdentity(); 
    glTranslatef(x, y, -1000); 
    for (p = buffer; *p; p++) 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, *p); 
    glPopMatrix(); 
} 

をしかし、私は、テキストのサイズを指定/変更することができるか分からないのですか?

これを行うには良い方法がありますか?

答えて

2

まずはnever use vsprintfとしてください。そして、私はiostreamや何かを使うことを意味するわけではありません。私は対n printfを使用することを意味します。そうすれば、あなたはあなたのキャラクター配列の終わりを去ることはありません。

第2に、glutStrokeStringを使用して文字列を描画する必要があります。

最も重要なのは、GLUTテキストレンダリングコードでは現在のマトリックスが使用されているため、テキストのサイズを変更する場合は、glScalefという行列スタックにスケールマトリックスをドロップするだけです。これはおそらくあなたが使用しているストロークフォントでのみ動作します。

関連する問題