Sujet : [MFC] image qui scintille |
Replouf66 |
merci beaucoup pour ces informations :jap: |
youdontcare |
le principe est tout simple. sans double buffering, si tu veux afficher un personnage qui se déplace sur une image de fond, tu dessines l'image de fond puis le personnage à l'écran. en faisant ça, tu va d'abord voir l'image de fond, puis le personnage, qui provoque alors un scintillement.
le double buffering tient son nom du fait que (miracle :D) il y a deux buffers : un 'caché' dans lequel tu dessines, l'autre étant l'écran. tu dessines donc ton image de fond puis le personnage dans le buffer caché, puis tu affiches ce buffer à l'écran : plus de scintillement.
pour windows, tu passes par CreateCompatibleDC(), CreateCompatibleBitmap() pour créer ton buffer caché, BitBlt() pour l'afficher à l'écran. fais une recherche là-dessus sur ce forum, tu trouveras pas mal de topics sur le sujet, certains en C, d'autres en Delphi, etc., le tout en Win32. tu peux également chercher sur google, codeproject.com ( http://www.codeproject.com/gdi/flickerfree.asp par exemple).
avec cette technique, tu peux dessiner tout ce que dessine internet explorer, photoshop, flash, etc. si tu veux faire de la 3d ou de la 2d pour un jeu, tu passes alors par opengl ou directx. |