Opengl 在 linux 上使用 freeglut 仅显示透明 window
Opengl using freeglut on linux shows only a transparent window
我正在尝试在 linux mint 20 上使用 freeglut3 来做一些基本的 openGL(我的老师强迫我使用 glut/freeglut 和 c++)。我只是想在屏幕上显示黑色 window,但只显示透明 window,并且直到显示分段错误(核心已转储)
才会关闭
这是我的代码
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void init()
{
glClearColor(1, 0, 0, 1);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowPosition(300, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("Linux TEST");
glutDisplayFunc(display);
init();
glutMainLoop();
}
我正在使用g++ main.cpp -lGL -lGLU -lglut
编译代码
这是输出
您正在使用...创建双缓冲上下文...
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
但你从来没有打电话给 glutSwapBuffers
。将您的 display
函数更改为...
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
glutSwapBuffers();
}
我正在尝试在 linux mint 20 上使用 freeglut3 来做一些基本的 openGL(我的老师强迫我使用 glut/freeglut 和 c++)。我只是想在屏幕上显示黑色 window,但只显示透明 window,并且直到显示分段错误(核心已转储)
才会关闭这是我的代码
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void init()
{
glClearColor(1, 0, 0, 1);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowPosition(300, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("Linux TEST");
glutDisplayFunc(display);
init();
glutMainLoop();
}
我正在使用g++ main.cpp -lGL -lGLU -lglut
编译代码
这是输出
您正在使用...创建双缓冲上下文...
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
但你从来没有打电话给 glutSwapBuffers
。将您的 display
函数更改为...
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glFlush();
glutSwapBuffers();
}