En fait comme dis je sais même pas si le double buffering aurait un intérêt. Moi ce qu'il me faut, c'est que ça scintille plus.
Pour expliciter un peu mieux, j'affiche 42 gif dans ma fenetre, et en passant ma souris sur telle ou telle image, j'affiche un texte en bas à droite, ou je change l'image, j'affiche d'autres trucs, etc.
Bref, quand la souris bouge, j'ai souvent des refresh, et à ce moment ça scintille. Sans utiliser le blit, on voit les images scintiller une à une en quelques sortes. Avec le blit, ca fait un seul gros scintillement mais toujours visible.
Autre chose que j'ai remarqué, la gestion des processus de Windows me fait prendre environ 1 Mo de mémoire utilisée à chaque refresh, pourtant je réallou pas d'image, donc là je comprends pas;
Voilà le code de base du paint, sans faire de blit :
Code :
- wxPaintDC real_dc(this);// le DC
- real_dc.DrawBitmap(*new wxBitmap(*new wxImage("img/map/map.gif" )), 0, 0, true);
- for (unsigned int i = 0; i < game->getTerritoires().size(); ++i)
- {
- int x,y;
- x =game->getTerritoires().at(i)->getImageX();
- y =game->getTerritoires().at(i)->getImageY();
-
- // affichage de toutes les images
- real_dc.DrawBitmap(game->getTerritoires().at(i)->getImage(), x, y, true);
- }
- //affichage d'un message en bas de la fenetre
- real_dc.DrawText(mesg.c_str(),10,550);
|
PS : trouver des tutoriaux, docs et autres sur wxWidget c'est chaud
Message édité par Nitro68 le 02-02-2005 à 17:47:25