2011-03-04 3 views
1

내가 VC6 에서 OpenGL을에 잘못된 모든 신체 부위 무슨 일 나는 다음과 같은 간단한 코드 출력 OpenGL을 윈도우 충돌

#include <stdio.h> 
#include <gl/glut.h> 
//#include <gl/glaux.h> 

void display(void) 
{ 

    glColor3f(255.0f,255.0f,255.0f); 
    glBegin(GL_QUADS); 
    glVertex3f(0.0f,0.0f,0.0f); 
    glVertex3f(0.0f,5.0f,0.0f); 
    glVertex3f(5.0f,5.0f,0.0f); 
    glVertex3f(5.0f,0.0f,0.0f); 
    glVertex3f(0.0f,0.0f,0.0f); 
    glEnd(); 
    glFlush(); 
} 

void init(void) 
{ 
     glViewport(0,0,400,400); 
     glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluPerspective(45.0,4/3,4.0,1000.0); 
    glMatrixMode(GL_MODELVIEW); 
    gluLookAt(2.0,2.0,2.0,1.0,2.0,1.0,0.0,1.0,0.0); 
} 

int main(int argc, char *argv[]) 
{ 
    glutInit(&argc,argv); 
    init(); 
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH); 
    glutInitWindowPosition(400,400); 
    glutInitWindowSize(400,400); 
    glutCreateWindow("Trial"); 
    glutDisplayFunc(display); 
    glutMainLoop(); 
    return 0; 

} 

내가 모르는 충돌 실행할 때마다하고 있어요는 도와주세요

+2

왜 아직도 VC6를 사용하고 계십니까? –

+0

그리고 적절한 헤더 'glut.h' 'gluax.h'도 포함했습니다 – sumanta

+1

어디에서 충돌이 발생합니까? 어떤 정확한 줄에? –

답변

5

OpenGL 컨텍스트를 사용하기 전에 OpenGL 함수를 사용하고 있습니다 (GL 함수를 호출해야하는 경우). 컨텍스트는 glutCreateWindow에 의해 만들어 지지만 GL 함수에 대한 첫 번째 호출은 init()에서 발생합니다. 이 문제를 해결하려면 init() 통화를 glutCreateWindow 통화 바로 아래로 옮길 수 있습니다.