TUTORIAL D'INITIATION SDL

Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
- - Dernière réponse : Clemkill
Messages postés
2
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
11 septembre 2012
- 19 mai 2010 à 19:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37172-tutorial-d-initiation-sdl

Clemkill
Messages postés
2
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
11 septembre 2012
-
Je viens de voir le tuto que tu as fait et après l'avoir testé sous Devcpp, je remarque que les points, lignes et autres rectangles ne sont pas affichés. Pourriez vous m'expliquer pourquoi ?
cs_psycho
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
Bon courage pour la suite.

Tu peux toujours me poser tes questions.

@+
Psycho
azrael88370
Messages postés
1
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
19 mai 2006
-
Bon alors voila, désolé de ne pas avoir répondu avant mais j'étais très pris.
Premièrement, je te remerci psycho de tes conseils, j'en tiendrais compte et j'améliorerais ce tutorial en conséquence.
Il devait en principe juste faire découvrir l'utilisation de SDL, en bref, une toute petite utilisation.
Les fonctions de traçage de lignes verticales et horizontales m'ont été nécessaire pour tracer un quadrillage, alors je les ai remis la dedans;
mais tu as raison, c'est pas la meilleure solution pour le faire.
M'enfin bon, 6/10, c'est déjà pas mal pour un premier tutorial !
cs_psycho
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
pour satellite34 : oui, c'est possible. Tu peut récuperer ta surface de rendu avec SDL_GetVideoSurface() et faire ton dessin dessus ensuite, que tu sois dans un thread ou non. Question ressources prises, je ne sais pas du tout ce que ca donne, mais ca doit pas être énorme...Par contre, pense à tester si tu peut écrire sur ta surface, ou si tu as besoin de la vérouiller avant d'écrire dessus...

++
cs_psycho
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
Alors, deux trois choses à dire :

Ta méthode pour tracer des points n'est pas très bonne car ce n'est pas la plus rapide. SDL_FillRect est prévue pour des zones, donc si tu veux faire un affichage point par point, je te suggère la fonction putpixel que tu pourras trouver sur le site, ou encore celle de la librairie sge (librairie pour sdl).

Ensuite, ta méthode pour les lignes, elle est bien jolie, mais complètement inutile...on ne peut tracer que des lignes qui sont soit horizontales, soit verticales : pas très pratique. Pour le dessin de lignes, rien ne vaut l'algorithme de Bresenham (pour des lignes non anti-aliasées). Là encore, je renvoie à la librairie sge...

Ensuite, deux trois erreurs à signaler : on ne libere pas la ressource de la fenêtre, SDL s'en charge pour nous (je renvoie à la doc pour la preuve : SDL_SetVideoMode). En parlant de SDL_SetVideoMode, il est dommage que pour un tutoriel tu ne détailles pas les différents mode vidéo possible...

Tu parles ensuite de comment affiché une image. C'est très bien, mais aucune explication n'est faites sur SDL_BlitSurface!! Comment quelqu'un qui découvre cette librairie va faire pour afficher une partie de l'image?? En parlant d'affichage d'image, tu ne la convertit pas au format écran. Bon, ok, c'est un tutoriel, on va éviter d'embrouiller les gens, mais bon le signaler aurait été bien...

Enfin, à aucun moment tu ne testes tes surfaces avant de les libérer. J'estime que quand on donne un code d'example dans un tutoriel, il se doit d'être très propre, et surtout examplaire. Un test de la surface aurait donc été le bienvenue. Pour finir, dernier reproche : tu ne parles pas d'une fonction importante : SDL_GetError qui devrait être expliqué dans ce tutoriel puisque tu expliques comment on crée la surface de rendu, comment chargé une image, etc...

je met 6/10 car on peut trouver mieux comme tutoriel...mais ca ne doit pas t empecher de continuer à en faire...
cs_satellite34
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1 -
et sinon, ça t'arrive de répondre aux questions sur tes sources??

merci.
gargamel2006
Messages postés
1
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
23 avril 2006
-
en fait, je crois qu'on ne peut pas uploader des tutoriaux dans la partie du site qui leurs est consacrée.
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
19 -
Salut,

Il y a une rubrique spéciale pour les tutoriaux. Ne pourrais-tu pas plutôt la mettre là ?
cs_satellite34
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1 -
bonjour, ce tuto a l'air bien, je vais l'étudier, cependant un question me turlupinne, car je suis confronté a un pronleme de dessin;

en fait je veux dessinner dans un thread. Avec openGL , je me casse les dents ( j'y arrive pas ) et avc un device context ca prends trop de resources, est-ce que la sdl me permettra de dessiner des points sur ma surface dans un thread séparé ???

merci pour le tuto.