libreria - opengl en visual studio 2017
diferencia de freeglut vs glew? (2)
Recientemente comencé a aprender OpenGL (> 3.3) y he notado que muchos ejemplos y tutoriales usan freeglut y glew, pero realmente no explican la diferencia en absoluto. La mejor descripción que he encontrado, después de buscar en Google y leer ad nauseum, ha sido este OpenGL Toolkits y API relacionados, pero me pareció que faltaba. Incluso he leído la información de la etiqueta en SO.
Como alguien realmente nuevo en OpenGL, todavía estoy tratando de comprender los diferentes conceptos. Llegué a la etapa de crear un programa básico que utiliza glew, crear contexto (en Windows, VS2010) y dibujar formas realmente básicas, todo ello sin la necesidad de incluir explícitamente freeglut. Entonces no entiendo por qué lo necesitaría.
Entonces mi pregunta es, ¿cuál es la diferencia entre:
-freeglut
-glew
- (y glfw)
¿Qué puede hacer uno que el otro no puede ?
Los estoy usando para trabajar en mi universidad.
GLEW es una "biblioteca de carga de extensión C / C ++ de código abierto multiplataforma" (desde su sitio web), mientras que freeglut es un administrador de ventanas que reemplaza la biblioteca predeterminada de OpenGL Utility Toolkit (GLUT).
Entonces, como puede ver, ambos tienen diferentes propósitos. El objetivo de usar FreeGLUT es que todavía se mantiene, mientras que el GLUT predeterminado no es así, por lo que si quieres correcciones de errores y nuevas características deberías usarlo :)
El OpenGL Extension Wrangler ( GLEW ) se utiliza para acceder a las funciones modernas de OpenGL API (versión 3.2 hasta la última versión). Si usamos una versión antigua de OpenGL, entonces podemos acceder a las funciones OpenGL simplemente incluyendo #include <GL/gl.h>
Pero en OpenGL moderno, las funciones de la API se determinan en tiempo de ejecución, no en tiempo de compilación. GLEW manejará la carga del tiempo de ejecución de la API de OpenGL. Acerca de GLEW ver here
GLFW o freeglut nos permitirá crear una ventana, y recibir entrada de mouse y teclado de forma multiplataforma. OpenGL no maneja la creación o entrada de ventanas, por lo que debemos usar estas bibliotecas para manejar ventanas, teclados, mouse, joysticks, entradas y otros propósitos.
GLFW y freeglut son alternativas para nosotros, de acuerdo con nuestra necesidad, podemos elegir cualquiera, pero GLEW es diferente de ellos y se utiliza para la carga en tiempo de ejecución de la API de OpenGL.