11/17
4.3. Functions et fichiers
Le programme précédent était entièrement écrit à l’aide d’un seul fichier avec peu d’utilisation de fonctions. Comme dans la plupart des programmes, les sous-parties de celui-ci peuvent être regroupées dans des fonctions, aidant ainsi à la lisibilité et réutilisabilité.
Le programme suivant implémente le même résultat que précédemment (rotation d’un triangle rouge), mais cette fois
-
Les sous-parties du code sont regroupées en fonctions
-
Des parties homogènes de code sont séparées en différents fichiers.
-
main.cpp contient les fonctions d’appels générales ainsi que l’initialisation et l’affichage spécifique à la scène.
-
opengl_helper.cpp contient les procédures génériques associées à l’utilisation d’OpenGL qui peuvent être réutilisée dans d’autres programmes (compilation de shaders, etc). Notez que la compilation des shaders inclut cette fois la gestion d’erreurs.
-
window_helper.cpp contient le code permettant l’initialisation de GLFW et la création d’une fenêtre avec un contexte OpenGL.
-
le répertoire shader/ contient le code GLSL dans des fichiers séparés (vertex shader, fragment shader). Ces fichiers sont lus à chaque fois que le programme est lancé.
-
[ code ]

Assurez-vous que vous puissiez compiler et lancer l’exécutable.
Notez que cette fois, il est nécessaire de lancer l’exécution du programme depuis le répertoire functions_and_files/ (ou plus généralement, depuis un chemin à le répertoire shaders/ est accessible). Le chargement des fichiers décrivant les shaders se réalise dans le code d’après le chemin local shaders/vertex[fragment]_shader.glsl, celui-ci doit donc être accessible à chaque exécution.
En pratique, si vous lancez l’exécutable depuis la ligne de commande, lancez celle-ci depuis le répertoire racine (functions_and_files/) (see README pour instructions), et si vous l’exécutez depuis un IDE, il faut spécifier ce répertoire comme étant celui de "run".