Начало работы с OpenGL в C ++ - PullRequest
1 голос
/ 11 декабря 2011

Я попытался начать программирование с OpenGl, используя этого учебного пособия , и на данный момент имею следующий код:

#include <gl/glut.h> // Include the GLUT header file

void display (void)
{
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv); // Initialize GLUT
    // Set up a basic display buffer (only single buffered for now)
    glutInitDisplayMode (GLUT_SINGLE);
    glutInitWindowSize (500, 500); // Set the width and height of the window
    glutInitWindowPosition (100, 100); // Set the position of the window
    // Set the title for the window
    glutCreateWindow("Your first OpenGL Window!");

    glutDisplayFunc(display);
    glutMainLoop();
    glClearColor(1.f, 0.f, 0.f, 1.f); // Clear the background of our window to red

    return 0;
}

Я строю и запускаю проект в Eclipse, он все прекрасно компилирует, но ничего не происходит (никаких всплывающих окон или чего-либо еще). Кто-нибудь может сказать мне, что я могу делать неправильно?

1 Ответ

1 голос
/ 11 декабря 2011
glutInitDisplayMode (GLUT_SINGLE);

Вам также нужно определить тип желаемого формата кадрового буфера, то есть, по крайней мере, добавить GLUT_RGBA (и, возможно, вам также нужен буфер глубины). И есть только несколько случаев, когда не нужен двойной буфер. Итак: glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);

Тогда ваша функция отображения не будет вызываться, если вы не добавите glutDisplayFunc(display); после glutCreateWindow.

glutMainLoop();
glClearColor(1.f, 0.f, 0.f, 1.f);

glutMainLoop не возвращается. И даже если это так, glClearColor не имел никакого эффекта в этом месте программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...