TUTORIAL D'INITIATION SDL

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 21 avril 2006 à 13:34
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
19 mai 2010 à 19:26
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
19 mai 2006 à 21:05
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
19 mai 2006 à 14:37
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
24 avril 2006 à 13:40
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
24 avril 2006 à 13:35
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
23 avril 2006 à 20:04
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
23 avril 2006 à 10:25
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 Membre Dernière intervention 23 décembre 2008 24
21 avril 2006 à 19:10
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
21 avril 2006 à 13:34
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.
Rejoignez-nous