2008-08-18 11 views

答えて

4

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()が呼び出されるまで表示されません。
関連する問題