Bonjour tout le monde,
j'ai un petit pb d'affichage dans mon appli SDL.
J'utilise la technique de la surface temporaire comme décrit ici :
http://jihane.berrada.free.fr/papi2d/pag5_6.html (paragraphe d: Gestion
de plusieurs personnages).
Pour résumer la technique : au lieu de blitter les persos directement sur
l'écran (on imagine qui le pointeur screen a eut droit au SDL_SetVideoMode(...) )
on va créer une SDL_Surface *temp; qui aura les même caractéristiques que screen.
On commence par blitter les persos sur temp et au final on blit temp sur screen.
Résultat tous les persos apparaissent bien en même temps, il n'y a pas de scintillement.
Maintenant le pb : si je ne travaille pas en plein écran aucun pb mais des que je suis en
plein écran, si g choisi le flag SDL_HWSURFACE lors de l'initialisation du VideoMode mon
image de perso scintille alors qu'avec le SDL_SWSURFACE c niquel ça ne scintille pas.
Pourquoi ne pas utiliser SDL_SWSURFACE ? Parce-que il est beaucoup plus lent et mon appli
me bouffe alors 98% du CPU alors qu'avec SDL_HWSURFACE ça trace et ça ne prend que
60% du CPU ... mais ça scintille :(
Si qqun a une idée pour corriger le pb, merci d'avance !!!
Vous pouvez voir la source sur cppfrance : http://www.cppfrance.com/code.aspx?ID=24961
ou bien la télécharger directement ici : http://levox.free.fr/SDL/
Le pb que je décris ici concerne l'affichage par l'application client bien sur.
A vous de changer les données dans le SDL_SetVideoMode() qui se trouve dans le main
pour constater les dégats ...
jf