4

私は最初の OpenGL プログラムを作成しています (freeglut を使用して C で)。表示関数に次のコードがあり、うまく機能し、灰色のテキストを出力します。

glColor3f(0.5f, 0.5f, 0.5f);
glRasterPos2f(0, 0);
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (unsigned char*)"some text");

今度は、glutBitmapString の代わりに glutStrokeString を試してみたいと思います。API に関する私の (謙虚な) 理解では、次のように動作するはずです。

glScalef(0.003,0.003,1);
glutStrokeString(GLUT_STROKE_ROMAN, (unsigned char*)"some text");

glutBitmapString-call の代わりにこの 2 行を使用してプログラムを実行すると、テキストが消える前に 1 回表示されます。さらに、その時点から、glutBitmapString で表示されるすべてのテキストも機能しません。ここで何が欠けていますか?

4

1 に答える 1

0

私はついにそれを解決しました。問題は、何らかの理由で glutIdleFunc が表示関数に設定されていて、マトリックスをリセットするのを忘れていたことです (そのため、glScalef を何度も呼び出しました)。今はうまくいきます。

于 2011-01-24T15:07:27.083 に答える