我花了> 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;
}
答案 0 :(得分:0)
我也在使用Ubuntu 9.10,带有最新的更新。使用
编译代码时g++ -o test -lglut -lGLU -lGL test.cpp
它完美无缺。这可能确实是一个错误。
其他OpenGL应用程序是否可以使用单缓冲?您是否尝试过其他视频驱动程序(非免费与免费)?
答案 1 :(得分:0)
在这里工作正常。 Ubuntu 9.10,x64
OpenGL渲染器字符串:Mesa DRI英特尔(R)Q35 GEM 20090712 2009Q2 RC3
OpenGL版本字符串:1.4 Mesa 7.6
我怀疑你的司机可能有错误。尝试禁用桌面视觉效果(系统 - &gt;首选项 - &gt;外观)。