AkThao
AkThao

Reputation: 643

Not able to run simple OpenGL program in Linux Minut

I'm learning OpenGL on Mac, where it works fine and I'm trying to recreate my programs on Linux Mint 17.3 in a VirtualBox virtual machine.

I am told I only need g++, make, freeglut3-dev and a text editor and I believe I already have all of these. If I do sudo apt-get install g++ for example, it will say g++ is already the newest version and it is the same for the rest as well.

I've written a simple program:

#include <GL/freeglut.h>
#include <GL/gl.h>

void renderFunction() {
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
    glBegin(GL_POLYGON);
    glVertex2f(-0.5, -0.5);
    glVertex2f(-0.5, 0.5);
    glVertex2f(0.5, 0.5);
    glVertex2f(0.5, -0.5);
    glEnd();
    glFlush();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(100,100);
    glutCreateWindow("OpenGL - First window demo");
    glutDisplayFunc(renderFunction);
    glutMainLoop();  

return 0;
}

The compile command g++ opengl.c -lglut -lGL -lGLEW -lGLU -o opengl seems to work. But when I run ./opengl I get a massive error message:

pci id for fd 4: 80ee:beef, driver (null)
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
libGL error: core dri or dri2 extension not found
libGL error: failed to load driver: vboxvideo
OpenGL Warning: XGetVisualInfo returned 0 visuals for 00000000023ace70
OpenGL Warning: Retry with 0x8002 returned 0 visuals
OpenGL Warning: XGetVisualInfo returned 0 visuals for 00000000023b2810
OpenGL Warning: Retry with 0x8003 returned 0 visuals

...

OpenGL Warning: XGetVisualInfo returned 0 visuals for 00000000023b1520
OpenGL Warning: Retry with 0x8003 returned 0 visuals
freeglut (./opengl):  ERROR:  Internal error <visualInfo could not be retrieved from FBConfig> in function fgOpenWindow

I have no idea what any of this means or how to deal with it.

Upvotes: 0

Views: 621

Answers (1)

Quimby
Quimby

Reputation: 19113

OpenGL relies on graphics drivers. VirtualBox does not have the most up-to-date, working drivers. Best you can do is install guest additions. Freeglut isn't helping either, most promising would be to write the minimal code needed by hand only using glad and GLFW. But don't expect much and certainly not "testing the portability of my program".

I once managed to get OpenGL 3.3 working on a particular version of Ubuntu with some experimental mesa drivers after a few tries, but I have no idea how to reliably reproduce that. Almost the same question on askubuntu.

Upvotes: 2

Related Questions