FAQ SDLConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 67, création le 10 mai 2013 

 
OuvrirSommaireGénéralités

Nous comptons sur vous pour enrichir cette FAQ et participer à sa maintenance ! Si vous avez remarqué une erreur, une simple faute d'orthographe, si vous souhaitez nous faire part d'un manque, ou n'importe quoi d'autre : vous pouvez , ou poster à la suite de ce sujet consacré à la FAQ SDL.

Merci !

Créé le 16 mars 2006  par Laurent Gomila

SDL (pour Simple Directmedia Layer) est une bibliothèque multimédia simple, mais bas niveau développée en C.
Elle permet de gérer facilement :

  • le fenêtrage ;
  • la vidéo 2D ;
  • l'audio ;
  • les évènements hardware (clavier, souris, joystick) ;
  • le CD-ROM ;
  • les threads ;
  • le réseau ;
  • l'accélération 3D matérielle via OpenGL avec qui elle peut s'interfacer.

Elle est totalement libre (sous licence LGPL) et peut être utilisée dans n'importe quelle application, libre ou commerciale.

Créé le 16 mars 2006  par Fiquet

Lien : Site officiel

Les principaux avantages de SDL sont qu'elle est 100 % libre, et surtout multiplateforme (portage sur de nombreux environnements comme Windows, Linux, MacOS, BeOS, OpenBSD, etc.).

Elle fonctionne nativement en C et C++, mais comprend beaucoup de bindings qui incluent les langages Java, C#, ADA, Pascal, Python et d'autres.
Voir la page des bindings sur le site officiel.

Par exemple, de nombreux jeux Linux, amateurs ou commerciaux, utilisent SDL comme base pour gérer le fenêtrage et les évènements.

Créé le 16 mars 2006  par Fiquet

SDL ne permet pas de faire des transformations sur les surfaces que l'on a affichées (voir http://jeux.developpez.com/faq/sdl/?page=2d#2D_transformations). Aussi pour ce genre de choses vous devrez soit tout coder vous-même, soit trouver des bibliothèques par-dessus SDL qui le feront pour vous. Cependant, tous les calculs étant effectués par le programme, ce genre de transformation peut être assez lourd. Si vous devez faire beaucoup de transformations dans vos applications, le mieux est de gérer le rendu avec une API comme OpenGL qui gère les transformations hardware.

Elle ne permet aussi de charger que des formats de base (comme le BMP pour les images ou le WAV pour le son), mais la plupart des formats courants sont déjà gérés dans les bibliothèques tierces (voir http://jeux.developpez.com/faq/sdl/?page=generalites#GENERALITES_bibliotheques).

Elle ne gère pas non plus l'affichage 3D, mais elle peut facilement s'interfacer avec OpenGL, ce qui permet d'avoir un programme portable depuis la création de la fenêtre jusqu'à l'affichage 3D, en passant par la gestion des évènements et du son.

Créé le 16 mars 2006  par Fiquet

Il existe de nombreux tutoriels en français sur la SDL :

À noter également ces très bons tutoriels en anglais : Lazy Foo.

Et bien sûr, l'incontournable site officiel, sur lequel vous trouverez (en anglais) des tutoriels, des articles et toute sorte d'informations complémentaires.

Mis à jour le 30 avril 2006  par Fiquet, Laurent Gomila

Vous pourrez trouver sur le wiki du site officiel une documentation de référence décrivant en détail chaque fonction :
SDL Documentation Wiki.

Créé le 16 mars 2006  par Laurent Gomila

SDL étant une API simple, mais de bas niveau donc ne gérant pas certaines choses comme la gestion des collisions ou les polices, beaucoup de bibliothèques sont arrivées permettant de gérer par exemple l'ouverture de formats d'images variés (SDL_image), la gestion avancée du son (SDL_mixer), la gestion des polices TrueType (SDL_ttf), etc.

Ces bibliothèques sont toutes accessibles depuis la page bibliothèques du site officiel (moteur de recherche inclus).

Créé le 16 mars 2006  par Fiquet

Il suffit pour cela de créer un projet « Application Windows » au lieu de « Projet Console » (ou équivalent, selon votre environnement de programmation). Inutile par contre de remplacer main par WinMain, comme il faut habituellement le faire : SDL s'en charge pour vous et appellera bien votre main.

Créé le 16 mars 2006  par Laurent Gomila

Sous Windows, la bibliothèque SDL redirige respectivement la sortie standard et la sortie d'erreur vers les fichiers stdout.txt et stderr.txt respectivement. À la fin de l'exécution, la bibliothèque vérifie si les fichiers sont vides et, si c'est le cas, la SDL les efface.

Créé le 3 mai 2007  par fearyourself

Si un appel SDL est fait avant l'appel à SDL_Init, le comportement est indéfini. Il faut faire attention aux appels SDL qui se trouvent dans les constructeurs puisque, souvent, l'initialisation de la SDL se fait dans la fonction main et si un objet est déclaré en global, le constructeur sera appelé avant la première instruction du main.

Pour éviter ce genre de problème, ne mettez pas d'appels SDL dans les constructeurs.

Créé le 3 mai 2007  par fearyourself
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006-2012 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.