Está en la página 1de 8

Finalmente pude configurar OpenGL en mi mquina con Windows 7 Ultimate

de 64 bits, pero creo que no habr problemas relativamente para versiones


Windows inferiores.

Por razones muy particulares no quise usar un compilador de Microsoft, as que


en mi caso me avoco a MinGW que viene en Code::Blocks 10.0.5.

Esta configuracin se refiere a la utilera GLUT y que segn, ya no tiene


soporte desde el 2001, pero existe otro grupo de personas que decidieron darle
continuidad al proyecto anterior, ponindole como nombre FREEGLUT, sta
versin es compatible con los proyectos o aplicaciones hechos con GLUT.

Uno de los principales problemas para poder configurarlo es la compatibilidad


entre archivos *.dll, *.lib y *.a (libreras dinmicas y estticas), como existen
ciertas dependencias entre estos archivos (y otros del sistema operativo),
resulta que mezclar versiones diferentes de stos, provocan errores al
momento de construir nuestras aplicaciones (el simple hecho de compilarlos no
arroja ningn error).
Si haz intentado configurar OpenGL sin xito usando diferentes
archivos disponibles en la Internet.Te recomiendo que depures o
mejor dicho, quites esos archivos (.dll, .lib, .a) ya que si estn an
instalados, te van a crear conflictos entre dependencias cuando
agregues o instales los que te voy a proporcionar (eso me pas a mi).
Para poder tratar de "embonar" las tantas versiones .dll, .lib y .a (freeglut/glut)
que descargu de internet sobre OpenGL me apoy con la herramienta
"DUMPBIN" en modo consola, que viene en el Smbolo del Sistema de Visual
Studio 2010. Con DUMPBIN entre otras cosas, puedes ver los metadatos y las
funciones que los archivos *.dll, *.lib, *.exe exportan o importan para
comunicarse entre s.

Voy a proporcionarles los archivos necesarios y como es que los dispuse en mi


directorio de archivos de mi computadora.

INSTALACIN:
Pueden arrastrar la carpeta freeglut contenida dentro de OPENGL.rar

al directorio donde tienen instalado MinGW (en Code::Blocks), pero los


archivos dll, debern ser arrastrados manualmente hasta las carpetas
System32 y SysWOW64 de Windows 7.
O hacerlo paso por paso:
Crean una carpeta con el nombre freeglut dentro de donde tengan instalado
Code::Blocks. En mi caso:
C:\Program Files (x86)\CodeBlocks\MinGW

Crear dentro de la carpeta freeglut dos carpetas ms:

GL y lib, copien o arrastren los respectivos archivos de GL a GL y de lib a lib


que vienen dentro del archivo OPENGL.rar.

Contenido de carpeta GL/freeglut, freeglut_ext, freeglut_std, glut.

Contenido de carpeta lib/libfreeglut.a, libfreeglut, GLU32, static.a,


OPENGL32.

Copiar o arrastrar los archivos dll a los directorios System32 y SysWOW64


(para sistemas operativos de 64 bits es necesario copiarlos o arrastrarlos en
cada uno de los dos).

Finalmente hay que ir a la opcin dentro de Code::Blocks:


Settings -> Compiler and debbuger

En linker settings agreguen Add explorando los directorios o poniendo la


ruta de donde estn alojados, como en mi caso particular:

Despus en la pestaa Search directories -> Compiler:

Hagan como en el paso anterior, lo que est seleccionado en azul (poner la


ruta de la carpeta GL), aqu estamos agregando los archivos de encabezado
headers.
Luego en la pestaa Linker:

Asignar la ruta de la carpeta lib (libreras estticas).


Damos OK y con esto queda configurado nuestro compilador para poder crear
aplicaciones OpengGL. Te paso el siguiente cdigo fuente (me funcion bien)
para que pruebes los resultados:

#include <stdlib.h>
#include <stdio.h>
#include <GL/freeglut.h> //TAMBIN PUEDES PONER: #include <GL/glut.h>
FUNCIONA IGUAL
void reshape(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1, 1, -1, 1, -1, 1);
glMatrixMode(GL_MODELVIEW);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,1,1);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glVertex3f(-1,-1,0);
glVertex3f(1,-1,0);
glVertex3f(0,1,0);
glEnd();
glFlush();
}
void init(void)
{
glClearColor(0,0,0,0);
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50, 50);
glutInitWindowSize(500, 500);
glutCreateWindow("Hello OpenGL");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
Salida en pantalla:

Como freeglut es la actualizacin de glut por eso hay compatibilidad para


compilar archivos fuente con invocacin de glut.h, sin embargo se te advierte
que en ocasiones haya que hacer leves ajustes a tu cdigo fuente, por lo que
recomiendo estarse documentando peridicamente.
Ing. Jess Omar Lpez Salas
Mail: browsely@hotmail.com
REFERENCIAS de este documento y para ms INFORMACIN:
http://freeglut.sourceforge.net/index.php#download
http://www.transmissionzero.co.uk/software/freeglut-devel/
http://www.opengl.org/resources/libraries/glut/glut_downloads.php#3
http://www.xmission.com/~nate/glut.html
Cd. Victoria, Tamaulipas, Mxico.
Fecha
16/10/2011

También podría gustarte