Qu'est-ce que GLEW et comment ça marche?


15

Je cherche une explication conviviale pour les débutants . L'explication du site officiel est trop courte et m'amène à plus de questions que de réponses:


  • Qu'est-ce que GLEW?

La page du développeur GLEW dit:

La bibliothèque OpenGL Extension Wrangler (GLEW) est une bibliothèque de chargement d'extensions C / C ++ open source multiplateforme . GLEW fournit des mécanismes d'exécution efficaces pour déterminer quelles extensions OpenGL sont prises en charge sur la plate-forme cible.


  • Mais qu'est-ce qu'une bibliothèque de chargement d'extensions?

Le wiki d'OpenGL dit

Une bibliothèque de chargement OpenGL est une bibliothèque qui charge des pointeurs vers des fonctions OpenGL au moment de l'exécution, du cœur et des extensions .


  • Que signifie charger des pointeurs vers des fonctions OpenGL ?

  • Qu'est-ce qu'une extension ?

  • Qu'est-ce que cela signifie par " core aussi bien que par extensions "?

Réponses:


20

La plupart des compilateurs vous fournissent un en-tête OpenGL qui prend en charge OpenGL 1.1, mais la plupart des fonctions fournies dans cette version d'OpenGL sont obsolètes depuis longtemps et manquent de fonctionnalités importantes telles que les shaders et les objets de tampon de vertex. GLEW est fondamentalement juste un en-tête (il existe un fichier source qui doit également être compilé, mais vous pouvez simplement l'inclure dans votre projet) qui fournit des fonctionnalités OpenGL plus récentes.

Qu'est-ce que cela signifie par extension?

Voici un lien d'OpenGL.org à leur sujet. Ce ne sont que des fonctions supplémentaires pour OpenGL qui ne font pas partie d'OpenGL. Ils fournissent des fonctionnalités qui peuvent être utiles, mais vous ne pouvez pas garantir qu'ils fonctionneront sur tous les ordinateurs car ils ne font pas partie du noyau OpenGL.

Que signifie charger des pointeurs vers des fonctions OpenGL?

OpenGL est implémenté par le pilote graphique comme un ensemble de fonctions implémentées conformément aux spécifications, et non comme une bibliothèque autonome, ne peut donc pas être simplement lié à votre projet.

Vous devez appeler une fonction (telle que GetProcAddress, mais cela dépend de la plate-forme pour laquelle vous développez) pour obtenir le pointeur de fonction au moment de l'exécution à partir du pilote pour chaque fonction OpenGL.

GLEW existe parce que cela peut être très difficile. C'est beaucoup plus facile lorsque vous pouvez simplement inclure un en-tête et appeler une fonction lors de l'initialisation, ce qui est exactement ce que fait GLEW. De plus, GLEW est multiplateforme.

Qu'est-ce que cela signifie par "core aussi bien que par extensions"?

Cela signifie qu'il fournit des fonctions OpenGL ainsi que des extensions OpenGL.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.