【发布时间】:2010-02-05 19:50:55
【问题描述】:
我花了 >1 天的时间,但我仍然不知道为什么。 我正在使用 Ubuntu 9.10,试图制作一个简单的 OpenGL 以在 c++ 中工作。
每当我使用 GLUT_SINGLE 参数时,它都会给我一个全黑屏。我不得不在那个屏幕上随机点击鼠标才能出去。这太烦人了。可能是一个错误。有人可以帮忙吗?
这是我使用的代码,在 c++ 中绘制了一个简单的三角形:
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/glu.h>
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();
glutSwapBuffers();
}
void myReshape(int a, int b)
{
}
void myMouse(int a, int b, int c, int d)
{
}
void myKeyboard(unsigned char c, int a, int b)
{
}
void myInit()
{
}
int main(int argc, char ** argv)
{
glutInit(&argc,argv); // initiaize the toolkit
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // set the display mode
glutInitWindowSize(640,480); // set window size
glutInitWindowPosition(0,0);
glutCreateWindow("first window");
glutDisplayFunc(myDisplay);
glutReshapeFunc(myReshape);
//glutMouseFunc(myMouse);
//glutKeyboardFunc(myKeyboard);
myInit();
glutMainLoop();
return 0;
}
【问题讨论】:
-
应该没有必要在单缓冲窗口上调用
glSwapBuffers()。不过,它不应该有效果。 -
在 Win7 x64 上对我来说很好。