viernes, 14 de junio de 2013

Tutorial 0 - Configurar OpenGL (Linux)

Tutorial para configurar OpenGL en Linux

Primero que nada debemos tener instalado en nuestra distribución de linux los compiladores esenciales.

sudo apt-get install build-essential g++

Con eso deberíamos tener instalado lo necesario para compilar nuestros códigos.

Ahora bien, necesitamos instalar freeglut. Freeglut es una librería open source alterna a GLUT, que fué originalmente creada con el fin de permitir al usuario manejar una ventana donde pueda desplegar contenido creado con OpenGL en los ejemplos del RedBook. GLUT no ha sido actualizada ni mantenido por mas de 10 años y por esta razón nace FreeGLUT.

Luego de la pequeña charla procedemos a descargar FreeGLUT desde este enlace.

Descomprimimos el archivo y entramos a la carpeta. Ejecutamos:

./configure

El programa intentará instalar cualquier dependencia faltante y configura el make. Ahora instalamos la librería con el siguiente comando:

make install

Ahora deberíamos tener instalado freeGLUT.

¡Vamos a probar!

El siguiente código intenta iniciar el entorno de OpenGL y levantar una ventana:

test.cpp

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

int main(int argc, char** argv) {
  printf("glutInit\n");
  glutInit(&argc, argv);
  printf("glutInitDisplayMode\n");
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  printf("glutInitWindowPosition\n");
  glutInitWindowPosition(100, 100);
  printf("glutInitWindowSize\n");
  glutInitWindowSize(320, 320);
  printf("glutCreateWindow\n");
  glutCreateWindow("Hello, World");
  printf("done\n");
  return 0;
}


Ahora compilamos con el siguiente código:

g++ test.cpp -o test -lglut

-lglut le dice al compilador que use la librería de glut (algo así como usar los DLL y LIB en windows)

./test

Deberíamos poder ver en la consola que todas las pruebas de inicialización de OpenGL culminaron correctamente y además, durante la ejecución, se peude observar muy velozmente que se levanta una ventana y se cierra, pero, puede pasar en algunos casos (como a mi) que no termina el programa y nunca levanta la ventana, esto se debe a que el SO no le permite a OpenGL levantar la ventana, pero hay una solución y es colocar el siguiente código antes de glutCreateWindow();


if (!glutGet(GLUT_DISPLAY_MODE_POSSIBLE))
  { 
    exit(1); 
  }

Esto hace que glut intente solicitar un modo de despliegue, al hacer la comprobación el SO le permitirá levantar la ventana, compilamos y corremos, ¡voilá! ¡funciona!

Con esto hemos culminado el Tutorial 0 para configurar OpenGL en Linux.

No hay comentarios. :

Publicar un comentario

Reglas simples que debes seguir para comentar en mi Blog:

1. Si tienes una duda, haz tu pregunta lo más clara posible.
2. Debes ser respetuoso con todos.
3. No admito abuso verbal, política, racismo, odio, SPAM ni publicidad.

El incumplimiento de algunas de estas reglas resultará en la eliminación de tu comentario.