Pregunta

He estado usando extensiones OpenGL en Windows desde manera dolorosa.¿Es GLEW el camino más fácil a seguir?¿Cómo empiezo con esto?

¿Fue útil?

Solución

Sí el Biblioteca Wrangler de extensión OpenGL (GLEW) es una forma sencilla de utilizar extensiones OpenGL en Windows.A continuación le indicamos cómo empezar:

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

Compruebe si su tarjeta gráfica admite las extensiones que desea utilizar.Descargue e instale los controladores y SDK más recientes para su tarjeta gráfica.

Versiones recientes de SDK de NVIDIA OpenGL enviar con GLEW.Si está utilizando esto, no necesita realizar algunos de los siguientes pasos.

Descargar brillaba y descomprímelo.

Agrega el GLEW papelera camino a tu Windows CAMINO Variable ambiental.Alternativamente, también puede colocar el glew32.dll en un directorio donde Windows recoge sus archivos DLL.

Agrega el GLEW incluir ruta a la lista de directorios de inclusión de su compilador.

Agrega el GLEW biblioteca ruta a la lista de directorios de bibliotecas de su compilador.

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

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

Agrega un #include <GL/glew.h> línea a su código.Asegúrese de que esto esté colocado encima de las inclusiones de otros archivos de encabezado GL.(Es posible que en realidad no necesite los archivos de encabezado GL incluidos si incluye glew.h.)

Inicialice GLEW usando glewInit() después de haber inicializado GLUT o GL.Si falla, entonces hay algún problema con su configuración.

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

Compruebe si las extensiones que desea utilizar ya están disponibles a través de GLEW.Esto se hace comprobando una variable booleana llamada brillaba_tu_nombre_de_extensión que está expuesto por GLEW.

Ejemplo:

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

¡Eso es todo!Ahora puede utilizar las llamadas de extensión OpenGL en su código como si existieran de forma natural para Windows.

Otros consejos

Personalmente no usaría un comando de salida.

Lanzaría una excepción para que puedas 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 OJ: si quieres escribir tutoriales para otros, este es realmente el lugar equivocado para hacerlo.Ya hay muchos buenos lugares para tutoriales de opengl. Prueba este por ejemplo.

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

Descargue MSYS (para MinGW) y recuerde tener MinGW instalado correctamente (la variable de entorno PATH está configurada 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 instalado MSYS, vaya a:http://glew.sourceforge.net/y descargue el paquete TGZ, que está diseñado para usarse con sistemas UNIX

Luego abra el paquete (también puede usar 7zip) y busque el "Makefile".Ábralo y con un editor de texto (el Bloc de notas debería funcionar bien) busque la fila que contiene "GLEW_DEST" y reemplácela con algo como "GLEW_DEST ?= C:/MinGW"

Ahora está listo para comenzar, abra MSYS (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 el trabajo está hecho (al menos para mí funcionó)

PD:También copié y pegué el archivo glew-1.10.0-win32\glew-1.10.0\bin elease\Win32 en mi carpeta System32, y en Eclipse CDT agregué la biblioteca "glew32" en la opción del vinculador y agregué un #include <GL/glew.h> antes #include <GL/glut.h>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top