3
コードで作成された有効なOpenGLコンテキストとはどのような段階ですか?私は単純なOpenGLコードでさえエラーになります。有効なOpenGLコンテキスト
コードで作成された有効なOpenGLコンテキストとはどのような段階ですか?私は単純なOpenGLコードでさえエラーになります。有効なOpenGLコンテキスト
comp.graphics.api.opengl
の投稿から、ほとんどの初心者が最初のOpenGLプログラムで手を焼いているようです。ほとんどの場合、エラーはOpenGL関数が有効なOpenGLコンテキストが作成される前に呼び出されているために発生します。 OpenGLは状態マシンです。マシンを起動して準備完了状態でハミングした後でなければ、それは動作させることができます。ここで
は、有効なOpenGLコンテキストを作成するために、いくつかの簡単なコードです:
#include <stdlib.h>
#include <GL/glut.h>
// Window attributes
static const unsigned int WIN_POS_X = 30;
static const unsigned int WIN_POS_Y = WIN_POS_X;
static const unsigned int WIN_WIDTH = 512;
static const unsigned int WIN_HEIGHT = WIN_WIDTH;
void glInit(int, char **);
int main(int argc, char * argv[])
{
// Initialize OpenGL
glInit(argc, argv);
// A valid OpenGL context has been created.
// You can call OpenGL functions from here on.
glutMainLoop();
return 0;
}
void glInit(int argc, char ** argv)
{
// Initialize GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowPosition(WIN_POS_X, WIN_POS_Y);
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
glutCreateWindow("Hello OpenGL!");
return;
}
注:
glutCreateWindow()
です。ウィンドウを作成するだけでなく、OpenGLコンテキストを作成します。glutCreateWindow()
で作成されたウィンドウは、glutMainLoop()
が呼び出されるまで表示されません。