在C ++中开始使用OpenGL

时间:2011-12-11 02:16:43

标签: c++ eclipse opengl

我尝试使用this tutorial开始使用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 个答案:

答案 0 :(得分:1)

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对该程序中的那个地方没有任何影响。