первая программа OpenGL из Красной книги вылетает, когда возвращается - PullRequest
2 голосов
/ 14 февраля 2012

Я прочитал «Красную книгу» (Руководство по программированию OpenGL) и попробовал первую программу в книге под windows 7 с VS2010.

Результат может отображаться нормально, но когда программа возвращается, она вылетает со следующей информацией:

Unhandled exception at 0x6992c660 in first.exe: 0xC0000005: Access violation.

Я пробовал некоторые другие программы, которые выпустили ту же проблему.

Следующий код:

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

void display(void)
{
/* clear all pixels */
    glClear(GL_COLOR_BUFFER_BIT);

/*  draw white polygon (rectangle) with corners at
 *  (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)
 */
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.25, 0.25, 0.0);
        glVertex3f(0.75, 0.25, 0.0);
        glVertex3f(0.75, 0.75, 0.0);
        glVertex3f(0.25, 0.75, 0.0);
    glEnd();

/*  don't wait!
 *  start processing buffered OpenGL routines
 */
    glFlush();
}

void init(void)
{
/*  select clearing (background) color  */
    glClearColor(0.0, 0.0, 0.0, 0.0);

/* initialize viewing values */
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

/*
 *  Declare initial window size, position, and display mode
 *  (single buffer and RGBA). Open window with "hello"
 *  in its title bar. Call initialization routines.
 *  Register callback function to display graphics.
 *  Enter main loop and process events.
 */

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("hello");
    init();

    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...