SDLの下でfreeglutを介してOpenGLを使用するプログラムがあります。SDL/OpenGL の初期化は次のとおりです。
// Initialize SDL
SDL_Init(SDL_INIT_VIDEO);
// Create the SDL window
SDL_SetVideoMode(SCREEN_W, SCREEN_H, SCREEN_DEPTH, SDL_OPENGL);
// Initialize OpenGL
glClearColor(BG_COLOR_R, BG_COLOR_G, BG_COLOR_B, 1.f);
glViewport(0, 0, SCREEN_W, SCREEN_H);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f, SCREEN_W, SCREEN_H, 0.0f, -1.0f, 1.0f);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
私は glBegin() ... glEnd() ブロックを問題なく使用してプリミティブを描画してきました。ただし、このプログラムでは、任意の glutBitmapX 関数を呼び出すと、プログラムはエラー ステータスなしで終了します。テキストを描画するために使用しているコードは次のとおりです。
glColor3f(1.f, 1.f, 1.f);
glRasterPos2f(x, y);
glutStrokeString(GLUT_BITMAP_8_BY_13, (const unsigned char*)"test string");
以前の同様のプログラムでは、glutBitmapCharacter と glutStrokeString を使用してテキストを描画しましたが、動作しているように見えました。唯一の違いは、以前のプログラムのように GLUT だけでなく、SDL で freeglut を使用していることです。私のセットアップに見られない根本的な問題がありますか、それともテキストを描画するためのより良い方法はありますか?