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()
在您的示例中可能具有的所有意外行为,所以我不知道为什么它随时都是透明的。不过,在您的小示例中,您不需要glEnd
和glFlush
。
你应该删除那里的glEnd()
,你没有任何以glBegin()
开头的原语。
Draw in QGLFrameBufferObject 的可能重复项
【参考方案1】:
您需要在设置清除颜色后调用glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
(因为您启用了深度测试,请确保您同时清除颜色缓冲区和深度缓冲区
【讨论】:
很高兴听到这个消息!不要忘记接受答案以表明它有效以上是关于opengl基本程序错误?的主要内容,如果未能解决你的问题,请参考以下文章