Bonjour à tous,
je suis actuellement en train d'afficher un signal en temps réel grâce à SDL.
Pour cela je fais :
donc j'affiche mon background, puis je mets mon signal sur ce background, et je répéte l'opération jusqu'à ce que l'utilisateur quitte le logiciel. Je fais une sorte de gros sandwich de surfaces qui s'ajoutent les unes sur les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 SDL_Surface * truc; int main() { while(!done) { dessin_du_background(); dessin_du_signal(); if (press key = echap) done = 1; } SDL_FreeSurface(truc); }
En faisant cela, (en regardant sur task manager), j'observe que la mémoire virtuelle de mon programme n'est pas libérée. elle est seulement libérée à la fin de mon main(), du coup elle augmente jusqu'à ce que l'ordinateur soit à bout de souffle et me dise qu'il doive arrêter de tourner.
Ma question est la suivante: comment libérer cette mémoire tout en gardant une rapidité d’exécution ? parce que je pourrais définir les surfaces dans mon while(!done) et les libérer à la fin de ce while,mais je pense que cela ralentira considérablement mon programme.
Merci
Partager