2008-08-20 17 views

Respuesta

32

Sí, el OpenGL Extension Wrangler Library (GLEW) es una forma fácil de usar las extensiones de OpenGL en Windows. Aquí le mostramos cómo comenzar:

Identifique la extensión OpenGL y las API de extensión que desea utilizar. Las extensiones de OpenGL se enumeran en el OpenGL Extension Registry.

Compruebe si su tarjeta gráfica es compatible con las extensiones que desea utilizar. Descargue e instale los últimos controladores y SDK para su tarjeta gráfica.

Las versiones recientes de NVIDIA OpenGL SDK se envían con GLEW. Si está usando esto, entonces no necesita hacer algunos de los siguientes pasos.

Descargue GLEW y descomprímalo.

Añadir la papelera de ruta GLEW a su Windows PATH variable de entorno. Alternativamente, también puede colocar glew32.dll en un directorio donde Windows toma sus archivos DLL.

Agregue el GLEW incluya ruta a la lista de directorios de inclusión de su compilador.

Agregue la ruta de GLEW lib a la lista del directorio de la biblioteca del compilador.

Indique a su compilador que use glew32.lib durante la vinculación. Si está utilizando Visual C++ compiladores entonces una forma de hacerlo es mediante la adición de la siguiente línea al código:

#pragma comment(lib, "glew32.lib") 

añadir una línea #include <GL/glew.h> a su código. Asegúrese de que esto se coloca por encima de los incluidos otros archivos de encabezado GL. (Puede que realmente no necesite los archivos de encabezado GL si incluye glew.h.)

Inicialice GLEW usando glewInit() después de haber inicializado GLUT o GL. Si falla, entonces algo está mal con su configuración.

if (GLEW_OK != glewInit()) 
{ 
    // GLEW failed! 
    exit(1); 
} 

Compruebe si la (s) extensión (es) que desea utilizar ahora están disponibles a través de GLEW. Para ello, verifique una variable booleana llamada GLEW _tur_extension_name expuesta por GLEW.

Ejemplo:

if (!GLEW_EXT_framebuffer_object) 
{ 
    exit(1); 
} 

Eso es todo! Ahora puede usar las llamadas de extensión OpenGL en su código como si existieran naturalmente para Windows.

+3

Hola. ¿Funciona esto con MinGW? He estado intentando durante 2 días, pero todo lo que consigo son errores como: 'referencia indefinida a '_imp__glewInit @ 0'' y' referencia indefinida a' _imp ____ glewCreateShader'' –

+0

Dan the Man: esta solución fue con Visual C++. No tengo idea si esto funciona con MingGW. –

+0

AFAIK, '#pragma comment (lib," glew32.lib ")' solo funciona en Visual C++. Para MinGW, debe agregar las bibliotecas a la línea de comandos del compilador (creo que es '-L'). –

5

Personalmente, no utilizaría un comando de salida.

Haría una excepción para que pueda borrar cualquier otra inicialización al final de la función.

es decir:

try 
{ 
    // init opengl/directx 
    // init directaudio 
    // init directinput 

    if (GLEW_OK != glewInit()) 
    { 
     throw std::exception("glewInit failed"); 
    } 
} 
catch (const std::exception& ex) 
{ 
    // message to screen using ex.what() 
    // clear up 
} 

Y estoy de acuerdo con DO - si usted quiere escribir tutoriales para los demás, entonces este es realmente el lugar equivocado para ella. Ya hay un montón de buenos lugares para tutoriales opengl. Try this one for instance.

3

Perdí algo de tiempo, pero finalmente logré que GLEW funcionara. Estoy usando Windows 7 (x64), Eclipse CDT y MinGW, y la forma es que:

Descargar MSYS (para MinGW) y rember a MinGW tienen instalado correctamente (variable PATH enviroinment ajustada correctamente): http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=

Una vez

Msys instalado, vaya a: http://glew.sourceforge.net/ y descargar el paquete TGZ, que está destinado para su uso con sistemas UNIX

continuación, abra el paquete (se puede usar 7zip también) y encontrar el "Makefile". Abrirlo y con un editor de texto (Bloc de notas debería funcionar bien) buscar la fila que contiene "GLEW_DEST" y reemplazarlo con algo como "GLEW_DEST = C:/MinGW"

Ahora ya está listo para ir, MSYS abierto (C: \ MinGW \ msys \ 1.0 \ msys.bat en mi caso) y en el shell abierto, vaya a la carpeta donde está el "Makefile".

Luego escribe un simple: "make install" y se realiza el trabajo (por lo menos para mí funcionó)

PS: También copio-pegado Glew-1.10.0-win32 \ Glew-1.10.0 \ bin \ Release \ Win32 file en mi carpeta System32, y en Eclipse CDT agregué la biblioteca "glew32" en la opción del enlazador y agregué un #include <GL/glew.h> antes de #include <GL/glut.h>