문제
내 코드에서 유효한 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()
호출됩니다.
제휴하지 않습니다 StackOverflow