문제

내 코드에서 유효한 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() 호출됩니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top