I am trying to use freeglut3 on linux mint 20 to do some basic openGL ( my teacher forced me to use glut/freeglut with c++ ). I am just trying to make a black window to show on screen but only a transparent window shows up and it doesn’t close until it shows Segmentation fault (core dumped)
here is my code
#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(); }
I am using g++ main.cpp -lGL -lGLU -lglut
to compile the code
Advertisement
Answer
You’re creating a double buffered context using…
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
But you never call glutSwapBuffers
. Change your display
function to…
void display() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); glFlush(); glutSwapBuffers(); }