web-dev-qa-db-fra.com

différence de freeglut vs glew?

J'ai récemment commencé à apprendre OpenGL (> 3.3) et j'ai remarqué que de nombreux exemples et tutoriels utilisent à la fois freeglut et glew, mais n'expliquent pas vraiment la différence du tout. La meilleure description que j'ai trouvée, après avoir googlé et lu des nausées, a été celle-ci Boîtes à outils et API OpenGL mais je l'ai trouvée manquante. J'ai même lu les informations de balise sur SO.

En tant que personne vraiment nouvelle à OpenGL, j'essaie toujours de comprendre les différents concepts. Je suis arrivé au stade de la création d'un programme de base qui utilise glew, crée du contexte (sur Windows, VS2010) et dessine des formes vraiment basiques, le tout sans avoir besoin d'inclure explicitement freeglut. Je ne comprends donc pas pourquoi j'en aurais besoin.

Donc ma question est alors, quelle est la différence entre:
- freeglut
- glew
- (& glfw)
Que peut-on faire que l'autre ne peut pas ?

41
ReturnVoid

L'OpenGL Extension Wrangler ( [~ # ~] glew [~ # ~] ) est utilisé pour accéder aux fonctions modernes de l'API OpenGL (version 3.2 jusqu'à la dernière). Si nous utilisons une ancienne version d'OpenGL, nous pouvons accéder aux fonctions OpenGL en incluant simplement comme #include <GL/gl.h>. Mais dans OpenGL moderne, les fonctions de l'API sont déterminées au moment de l'exécution, pas à la compilation. GLEW gérera le chargement au moment de l'exécution de l'API OpenGL. À propos de GLEW voir ici

[~ # ~] glfw [~ # ~] ou freeglut sera nous permettent de créer une fenêtre et de recevoir des entrées de souris et de clavier de manière multiplateforme. OpenGL ne gère pas la création ou la saisie de fenêtres, nous devons donc utiliser ces bibliothèques pour gérer les fenêtres, le clavier, la souris, les joysticks, les entrées et autres.

[~ # ~] glfw [~ # ~] et freeglut sont alternative pour nous en fonction de nos besoins, nous pouvons en choisir un mais [~ # ~] glew [~ # ~] est différent de celui utilisé pour Exécuter le chargement de l'API OpenGL.

51
Dinesh Subedi

J'utilise les deux pour certains travaux dans mon université.

GLEW est une "bibliothèque de chargement d'extensions C/C++ open source multiplateforme" (à partir de son site Web), tandis que freeglut est un gestionnaire de fenêtres qui remplace la bibliothèque par défaut OpenGL Utility Toolkit (GLUT).

Donc, comme vous le voyez, les deux ont des objectifs différents. Le point d'utiliser freeglut est qu'il est toujours maintenu, alors que le GLUT par défaut ne l'est pas, donc si vous voulez des corrections de bugs et de nouvelles fonctionnalités, vous devez l'utiliser :)

1
mrcasals