【发布时间】:2019-10-29 09:01:05
【问题描述】:
我正在尝试使用 c++ 学习 opengl,并且正在尝试更改背景的颜色。这是我目前得到的代码
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void display();
void init()
{
glClearColor(1.0, 1.0, 0.0, 1.0);
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowPosition(200, 100);
glutInitWindowSize(500, 500);
glutCreateWindow("Window 1");
glutDisplayFunc(display);
init();
glutMainLoop();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
}
当我运行它时,我只是得到一个没有颜色的黑色窗口。谁能告诉我我做错了什么
【问题讨论】:
-
我之前没用过glut,但是貌似只有在窗口损坏的情况下才使用Display func。改用 glutIdleFunc 试试?
-
我已经尝试替换它,但现在我得到一个错误,因为没有显示回调
-
看看GLUT examples,您似乎可以在空闲函数中简单地调用
glutPostRedisplay()。 -
@Botije 你的意思是在初始化函数的末尾编辑:我试着把它放在初始化函数的末尾,但它仍然显示一个黑色窗口
-
将
glutIdleFunc指向一个只调用glutPostRedisplay()的函数。将glutDisplayFunc指向您的display函数。