opengl基本程序错误?

Posted

技术标签:

【中文标题】opengl基本程序错误?【英文标题】:open gl basic program error? 【发布时间】:2014-07-30 17:56:33 【问题描述】:
#include <stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<GL/glut.h>

void display (void)

    glClearColor(1.f, 0.f, 0.f, 1.f);
    glEnd();
    glFlush();


int main(int argc, char **argv)

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(100,100);
    glutCreateWindow("Colorcube Viewer");
    glutDisplayFunc(display);
    glEnable(GL_DEPTH_TEST);
    glutMainLoop();
    return 0;

我无法弄清楚这段代码有什么问题? 它没有给我一个红色窗口。

【问题讨论】:

设置清除颜色后,需要调用清除命令glClear(GL_COLOR_BUFFER_BIT); 是的,谢谢。你能告诉我为什么有时它会给我一个透明的窗口 我不知道glFLush() 在您的示例中可能具有的所有意外行为,所以我不知道为什么它随时都是透明的。不过,在您的小示例中,您不需要glEndglFlush 你应该删除那里的glEnd(),你没有任何以glBegin()开头的原语。 Draw in QGLFrameBufferObject 的可能重复项 【参考方案1】:

您需要在设置清除颜色后调用glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);(因为您启用了深度测试,请确保您同时清除颜色缓冲区和深度缓冲区

【讨论】:

很高兴听到这个消息!不要忘记接受答案以表明它有效

以上是关于opengl基本程序错误?的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的OpenGL程序编译错误

OpenGL程序给出一个段错误

OpenGL 程序着色器链接错误

带有着色器程序且没有错误的现代 OpenGL 黑屏

OpenGL 应用程序崩溃

如何查找 NVIDIA OpenGL 驱动程序的错误 ID 名称?