[C con Clase] libreria Funciones graficas

Steven Davidson steven en conclase.net
Mie Feb 21 22:53:33 CET 2007


Hola Henry,

El pasado 2007-02-21 19:35:58, henry escribió:

h> gracias por la info, pero no se donde exactamente descargar openGL, he visto 
h> que la ultima version es la 2.1, intento desde las actualizaciones de Dev 
h> c++ y no aparece,

Me temo que lo de las versiones de OpenGL tienen su "truco". Es cierto que la última versión de OpenGL es 2.1, pero esto tiene que ver con la funcionalidad; o sea, la DLL. Sin embargo, esta versión no es indicativa del SDK (Kit de Desarrollo) de OpenGL que siempre ha sido la versión 1.1. Para poder hacer uso de las nuevas funciones de posteriores versiones, que a veces llamamos las "extensiones", tienes que hacer uso de una función especial llamada 'wglGetProcAddress()', bajo MS-Windows. Esta función servirá para acceder a esas funciones de OpenGL que tu aceleradora gráfica pueda implementar. Por ejemplo,

typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);

PFNGLPOINTPARAMETERFEXTPROC glPointParameterfEXT;
PFNGLPOINTPARAMETERFVEXTPROC glPointParameterfvEXT;

Ahora usamos 'wglGetProcAddress()' para conseguir el puntero a estas funciones. Por ejemplo,

glPointParameterfEXT =
      (PFNGLPOINTPARAMETERFEXTPROC) wglGetProcAddress( "glPointParameterfEXT" );
glPointParameterfvEXT =
      (PFNGLPOINTPARAMETERFVEXTPROC) wglGetProcAddress("glPointParameterfvEXT");

Sugiero enormemente que consigas alguna biblioteca de extensiones, especialmente si proviene del fabricante de la aceleradora gráfica, como pueden ser nVidia, ATI, etc.. Tendrán todo ya hecho personalizado para que puedas usar las extensiones de cada versión al igual que las suyas propias.

Si no, entonces te toca hacer lo anterior, y leerte las especificaciones de cada extensión según han ido apareciendo a lo largo del historial de las versiones de OpenGL. Bajo Dev-C++, puedes descargar GLEW, que trae toda la configuración hecha en su propia DLL. En OpenGL.org, tienen un registro de las extensiones de OpenGL junto a algunos ficheros de cabecera paa aliviar escribir muchas definiciones. Puedes ir directamente a: http://www.opengl.org/registry/

De todas maneras, nos dijiste que estás empezando, por lo que no vas a meterte con las extensiones. Créeme, hay muchas cosas que saber de OpenGL antes de adentrarte a las otras funcionalidades que suelen tratarse de temas avanzados.


En cuanto a conseguir el kit de desarrollo para OpenGL, disculpa la confusión. Dev-C++ ya trae lo básico para OpenGL. Sugiero crear un nuevo proyecto. Elige la pestaña "Multimedia" y verás un icono para crear un proyecto de OpenGL. Con eso, Dev-C++ ya está configurado para que uses OpenGL.


Espero que lo anterio te ayude.

Steven


Más información sobre la lista de distribución Cconclase