Librairie graphique sdl

Soyez le premier à donner votre avis sur cette source.

Vue 11 817 fois - Téléchargée 1 247 fois

Description

Ceci est une librairie graphique pour SDL en C avec de nombreuses fonctions de base : ouvrir une fenêtre, tracer un rectangle, un cercle, des droites, etc.

Conclusion :


Même si certaines fonctions ne sont pas à modifier, la fonction pour quitter peut être modifiée si vous voulez quitter le programme de différentes façons.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

mickbad
Messages postés
76
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
20 avril 2008
-
salut,

j'ai peut-être quelques remarques sur la librairie.

Déjà, pourrais-tu mettre un exemple d'utilisation ? non pas que cela soit très difficile de mettre en oeuvre un programme test, mais pour les néophytes que nous sommes ... un ch'tite pensée :)

Ensuite, personnellement ça m'ennuie de voir à ta fonction initSDL un exit si l'initialisation SDL ne se fait pas : en fait, tu ne laisses pas le soin au programmeur de gérer justement les erreurs ! Oui, on peut nous même changer le code mais on peut imaginer que cela ne soit pas possible (dll, lib ...)

Dans la fonction :
void pause(void)
{
long i=0;
while (i<PAUSE) i++;
}

oulala, tu n'as pas peur pour ton CPU!
le mien (les miens car il est bi le cochon ;) commence à activer son ventilateur dès que le CPU dépasse les (admettons) 35%. Alors si dans un jeu (surtout un p'tit), je fais une pause d'affichage, j'entends mon ventilo s'affoler .. je ne vois plus l'intérêt de la pause.
Nan .. pour résumer ... ta boucle ne propose pas trop au système de passer à un autre processus (programme) donc il va demander la main au processeur tout le temps alors que c'est inutile:
solution, un ch'tite pause :
while (++i < PAUSE) Sleep(10); /* par exemple */
sachant que Sleep est défini dans windows.h et un équivalent sur linux usleep dans unistd.h (aux unités d'argument près)


Que dire d'autre : visiblement tu dois faire un initSDL() puis un initCouleurs dans ton programme .. moui, autant faire un appel d'initCouleurs dans initSDL à ce moment là (vive l'automatisme);
Mais de manière globale, et ça n'engage que moi naturellement, quitte à encapusler les appels SDL, pourquoi ne pas faire de l'objet ?
effectivement ça permettait bcp de choses et d'éviter à se poser des questions quant au nommage des fonctions de la librairie car on peut facilement avec une fonction pause() ailleurs ;)

m'enfin, le C c'est bien aussi, je te rassure .. jamais obligé d'employer du C++

Dernière chose : MAIS OU SONT LES COMMENTAIRES ??
héhé! ben oui je suis toujours étonné d'en voir rarement sur ce genre de code (censé être réutilisé ailleurs). Ne me dis pas qu'ils sont dans le .h
Oui j'ai vu mais le code par lui-même n'a que très peu de commentaire !

Je pense que tu comprends ce que je veux dire. Sinon, un jour tu le comprendra surtout si tu dois par exemple reprendre un code d'une autre personne pour le débugger et/ou le faire évoluer !


une dernière chose, comment tu utilises ta fonction quitter() par exemple ? en gros, pour moi, ta fonction n'est pas bonne car elle me raconte que si je l'emploi le programme devrait s'arrêter et là ... pas vraiment !

bonne continuation
.Mick.
mickbad
Messages postés
76
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
20 avril 2008
-
ah oui, pour l'exemple, j'ai vu que tu as fait un programme Horloge en SDL (http://www.cppfrance.com/codes/NET-HORLOGE-SDL_36304.aspx)

mais en tout cas tu n'as pas de fonction quitter(), tu as dû t'apercevoir qu'elle ne servait à rien en l'état, non ?

Et pour revenir à la façon d'encapusler SDL en mode objet, pense que tu peux toujours faire de l'objet en C (avec des strutures par exemple) : du moins lorsque j'ai appris le C, on faisait du C plutôt orienté objet :) pour certainement préparer les cours de C++ ;)

en tout cas, c'était efficace comme méthode :)))

.Mick.
cs_PLA
Messages postés
3
Date d'inscription
samedi 10 mai 2003
Statut
Membre
Dernière intervention
1 mars 2006
-
L'horloge a été faite avant la librairie et j'ai décidé de mettre les deux codes en même temps mais c'est pour cette raison que je n'utilise pas la librairie.
De plus je n'aime pas trop les structures avec les noms à rallonge et c'est vrai qu'un de ces jours il faudrait que je fasses de l'orienté objet.
Rouliann
Messages postés
115
Date d'inscription
samedi 20 décembre 2003
Statut
Membre
Dernière intervention
23 août 2008
1 -
Ca existe pas déja des fonctions pour tracer des lignes dans la SDL ? O_ô
cs_jean84
Messages postés
450
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009
-
C'est vrai qu'uitliser une boucle pour faire attendre n'est pas tres precis parce que suivant la puissance du processeur, la boucle sera plus ou moins longue... il vaut mieux utiliser comme l'a suggerer mickbad la fonction Sleep() mais tant qu'a faire, autant utiliser SDL_Delay(int) qui fait fait la meme chose mais plus propre a mon avis (appartient directement a la lib sdl) et qui fait une pose de x milisecondes....
@++ et bon code !!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.