Error when running OpenGL project under Ubuntu 10.10

733 views Asked by At

I had OpenGL project for finding a convex hull written in Windows.

Now i'm using Ubuntu 10.10 and i tried to port the code (It's C++ code) and run it.

I saw that, it should be compiled this way :

g++ convex.cpp -lm -lglut -lGLU -o convex_hull_project

It compiles the file, but when i run the file ./convex_hull_project it starts the program, shows the title but there is nothing - it only docks for the bottom task line and when i click it - nothing shows. There is no window with the program. Any idea ? Here's the code that uses OpenGL stuff :

int main(int argc, char* argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH); // color, buffer
    glutInitWindowPosition(100,100);
    glutInitWindowSize(window_size_width,window_size_height);
    glutCreateWindow("Convex hull");
    glutDisplayFunc(renderScene);
    glutMouseFunc(mouse);
    glutMainLoop();
    return 0;
}


void renderScene(void) {

    // clear framebuffer
    glClearColor(0.f,0.f,0.f,0.f);
    glClear(GL_COLOR_BUFFER_BIT);

    // set-up matrix
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,window_size_width,window_size_height,0,-1,1);

    glViewport(0,0,window_size_width,window_size_height);
        //drawing ... 
    }

And includes are :

#include<GL/glut.h>
#include<GL/glu.h>
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<math.h>
1

There are 1 answers

5
AudioBubble On BEST ANSWER

You have to call glutCreateWindow before you set windows's properties. Your code, fixed (I've replaced width and height constants with 300 just to get it to compile and commented out mouse handler registration):

#include <cstdio>
#include <vector>
#include <algorithm>
#include <cmath>

#include <GL/glut.h>
#include <GL/glu.h>

void renderScene(void) {

    // clear framebuffer
    glClearColor (0.f,0.f,0.f,0.f);
    glClear (GL_COLOR_BUFFER_BIT);

    // set-up matrix
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    glOrtho (0, 300, 300, 0,-1,1);

    glViewport (0,0,300, 300);
    //drawing ... 
}

int main(int argc, char* argv[])
{
    glutInit (&argc, argv);
    glutInitDisplayMode (GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH); // color, buffer
    glutCreateWindow ("Convex hull");
    glutInitWindowPosition (100, 100);
    glutInitWindowSize (300, 300);
    glutDisplayFunc (renderScene);
    //glutMouseFunc (mouse);
    glutMainLoop ();
}