Simple and Fast Multimedia Library
Transcription
Simple and Fast Multimedia Library
Simple and Fast Multimedia Library SFML et Visual studio Introduction Ce tutoriel est le premier que vous devriez lire si vous utiliser SFML avec l'EDI Visual Studio (compilateur Visual C++). Il va vous expliquer comment configurer vos projets SFML. Installer SFML Tout d'abord, vous devez télécharger le SDK SFML depuis la page des téléchargements. (SFML 2.1) Vous devez télécharger le package qui correspond à cotre version de Visual C++. En effet, une bibliothèque compilée avec VC++ 9 (Visual Studio 2008) ne sera pas compatible avec Visual C++ 10 (Visual Studio 2010) par exemple. Vous pouvez ensuite décompresser l'archive SFML où vous le souhaitez (exp. C:\SFML). Créer et configurer un projet SFML sous Visual Studio La première chose à faire est de choisir quel type de projet créer : vous devez sélectionner "Win32 application". L'assistant offre quelques options pour personnaliser le projet : choisissez "Console application" si vous voulez la console, ou "Windows application" si vous n'en avez pas besoin. Cochez la case "Empty project" si vous ne voulez pas être embêté avec du code généré automatiquement. Pour les besoins de ce tutoriel, vous devez également créer un fichier main.cpp et l'ajouter immédiatement au projet, de manière à avoir accès aux options C++ (sinon, Visual Studio ne sait pas quel langage vous allez utiliser dans le projet). Nous verrons plus tard quoi mettre dedans. Maintenant, nous devons dire au compilateur où trouver les en-têtes SFML (fichiers .hpp), et à l'éditeur de liens où trouver les bibliothèques SFML (fichiers .lib). Dans les propriétés du projet (bouton droit sur le projet >propriétés), ajoutez : o Le chemin vers les en-têtes SFML (<installation-de-sfml>/include) à C/C++ » General » Additional Include Directories o Le chemin vers les bibliothèques SFML (<installation-de-sfml>/lib) à Linker » General » Additional Library Directories Ces chemins sont les mêmes en configuration Debug et Release, vous pouvez donc les affecter globalement au projet ("All configurations"). L'étape suivante est de lier votre application aux bibliothèques SFML (fichiers .lib) dont votre code a besoin. SFML est composée de 5 modules (système, fenêtrage, graphique, réseau et audio), et il y a une bibliothèque pour chacun. Les bibliothèques doivent être ajoutées dans les propriétés du projet, dans Linker » Input » Additional Dependencies. Ajoutez toutes les bibliothèques SFML dont avez besoin, par exemple "sfml-graphics-s-d.lib", "sfml-window-s-d.lib" et "sfml-system-sd.lib". Il est important de lier les bibiothèques qui correspondent à la configuration : "sfml-xxx-d.lib" pour Debug, and "sfml-xxx.lib" pour Release. Un mauvais mélange pourrait entraîner des crashs. Pour avoir SFML directement intégrée à votre exécutable, sans devoir ajouter les DLLs près de l’exécutable, vous devez lier le projet à la version statique. Les bibliothèques statiques de SFML ont le suffixe "-s" : "sfml-xxx-s-d.lib" pour Debug, et "sfml-xxxs.lib" pour Release. Dans ce cas, vous devrez aussi définir la macro SFML_STATIC dans les options préprocesseur de votre projet. Si vous ne connaissez pas les différences entre les bibliothèques dynamiques (aussi appelées "partagées") et statiques, et ne savez pas lesquelles utiliser, vous pouvez faire une petite recherche sur Google, vous devriez trouver de bons articles/messages pour vous aider. Votre projet est prêt, écrivons maintenant un peu de code pour voir si tout cela fonctionne. Copiez le code suivant dans le fichier main.cpp : #include <SFML/Graphics.hpp> using namespace sf; int main() { RenderWindow maFenetre(VideoMode(200,200), "Fentre SFML"); CircleShape unCercle(100.f); unCercle.setFillColor(Color::Red); while (true) { maFenetre.clear(); maFenetre.draw(unCercle); maFenetre.display(); } return 0; } Puis lancez-le, et si tout s'est bien passé vous devriez voir ceci : On s’est limité ici au cas de bibliothèque statique avec mode Debug. Pour plus d’information aller sur la page web d’origine : SFML and Visual Studio Ceci est une version modifiée de SFML and Visual Studio Copyright © Laurent Gomila