GLUT_SINGLE 显示黑屏

Posted

技术标签:

【中文标题】GLUT_SINGLE 显示黑屏【英文标题】:GLUT_SINGLE displays a black screen 【发布时间】: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 上对我来说很好。 【参考方案1】:

我也在使用带有最新更新的 Ubuntu 9.10。使用

编译代码时
g++ -o test -lglut -lGLU -lGL test.cpp

完美运行。这确实可能是一个错误。

其他 OpenGL 应用程序是否使用单缓冲?您是否尝试过不同的视频驱动程序(非免费与免费)?

【讨论】:

是的,我也认为问题出在我的显卡驱动程序上。我仍在尝试为我的笔记本电脑寻找一个好的显卡驱动程序。它是 Ubuntu 9.10 上的 Radeon Xpress 200M。【参考方案2】:

在这里工作正常。 Ubuntu 9.10,x64

OpenGL 渲染器字符串:Mesa DRI Intel(R) Q35 GEM 20090712 2009Q2 RC3

OpenGL 版本字符串:1.4 Mesa 7.6

我怀疑您的驱动程序可能有问题。尝试禁用桌面视觉效果(系统 -> 首选项 -> 外观)。

【讨论】:

以上是关于GLUT_SINGLE 显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章

Android闪白屏黑屏问题解决办法

iOS解决LaunchScreen图片显示问题:白屏黑屏不显示显示旧的图片等等问题

kmp, 影音先锋 全屏黑屏,但有声音和字幕

锁屏黑屏界面手势绘图打开 应用

思迅终端设备开机启动闪屏黑屏的处理方法

如何有效解决高清视频传输中出现的闪屏黑屏蓝屏问题?