Programmation C++/Dessiner des formes : les bibliothèques graphiques

Un livre de Wikilivres.

Le C++ peut être utilisé pour la création de jeux ou plus généralement d'interface graphiques, qui nécessitent de pouvoir dessiner et créer des formes, entre autres.

Cette partie traite de la programmation graphique basique du C++ en 2D. Pour ce faire, il sera utilisé la bibliothèque graphique SFML.

Téléchargement de la SFML[modifier | modifier le wikicode]

  • Allez sur http://www.sfml-dev.org/download/sfml/2.4.0/index-fr.php et téléchargez la version qui correspond à votre configuration. Le site de la SFML est très bien détaillé et apporte beaucoup d'informations sur quelle version télécharger.
  • Enregistrer où vous voulez le dossier, le principal étant de choisir un répertoire dont on se souvient facilement.

Mise en place de la SFML[modifier | modifier le wikicode]

Pour utiliser la SFML, il faut ajouter à votre projet un chemin d'inclusion qui va jusqu'au dossier include de votre dossier SFML : par exemple "C:\SFML-2.4.0\include" (sur Windows).

Puis il faut joindre les fichiers .hpp correspondant aux besoins du programme. La plupart du temps, #include <SFML/Graphics.hpp> suffit.

Pour la compilation, il faut d'abord compiler le fichier source principal du programme, par habitude "main.cpp" : "g++ -c main.cpp -I<chemin/du/dossier/include/SFML>". Cela génère un fichier "main.o". Puis il faut lier le fichier compilé aux bibliothèques SFML : "main.o -o sfml.exe -L<chemin/du/dossier/lib/SFML> -lsfml-graphics -lsfml-window -lsfml-system". Enfin, il faut ajouter les fichiers .dll du dossier "bin" du dossier SFML dans le répertoire d'exécution du programme compilé.

On peut se référer aux pages d'aides du site de la SFML pour effectuer les actions décrites ci-avant : http://www.sfml-dev.org/tutorials/2.4/index-fr.php --> Catégorie « Démarrer ». En ce qui concerne Visual Studio Code, on peut configurer ainsi le fichier "tasks.json" :

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "suppressTaskName": true,
    "tasks": [
        { 
            "taskName": "Compilation",
            "isBuildCommand": true,
            "args": ["-c", "${workspaceRoot}\\main.cpp", "-IC:\\SFML-2.4.0\\include"]
        },
        { 
            "taskName": "Liaison du fichier compilé aux bibliothèques SFML",
            "args": ["${workspaceRoot}\\main.o", "-o", "sfml.exe", "-LC:\\SFML-2.4.0\\lib", "-lsfml-graphics", "-lsfml-window", "-lsfml-system"]
        }
    ],
    "showOutput": "always"
}

Utilisation de la SFML[modifier | modifier le wikicode]