Вы находитесь на странице: 1из 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