J'ai réussi à faire fonctionner DrMemory avec mon programme !
Merci.
Pour info, lorsque j'utilise le paramètre SDL_RENDERER_ACCELERATED pour la fonction SDL_CreateRenderer, mon programme plante.
Si j'utilise SDL_RENDERER_SOFTWARE, je peux utiliser mon programme.
Pour résumer, ce empêche l'utilisation de DrMemory
m_p_Renderer = SDL_CreateRenderer(m_p_Ecran,-1,SDL_RENDERER_ACCELERATED);
Mais si je la remplace par ceci, je peux utiliser DrMemory
m_p_Renderer = SDL_CreateRenderer(m_p_Ecran,-1,SDL_RENDERER_SOFTWARE);
C'est dommage, je pers environ 300fps (passant de 600 à300 pour le menu et de 400 à 100 pour le jeu en lui-même).
J'ai pu boucher mes fuites mémoires (oui, il y en avait).
Il me reste quelques erreurs :
10 unique unaddressable access(es)
=> 8 de ces erreurs correspondent juste des appels au DLL windows ou au DLL SDL, mon code n'est même pas cités. Je me dis donc que ce n'est rien de grave.
=> 1 correspondant au TTF_OpenFont utilisé pour afficher les fps (alors que mes autres appels à cette fonction ne posent pas de problème)
6 unique uninitialized access(es)
=> 2 de ces erreurs correspondent juste des appels au DLL windows ou au DLL SDL, mon code n'est même pas cités. Je me dis donc que ce n'est rien de grave.
=> 3 de ces erreurs correspondent aux lignes de code suivantes (oui, j'ai plusieurs fois des boucle PollEvent, une par "écran").
Que la variable EvSDL n'est pas initialisée, je le confirme, c'est le rôle de SDL_PollEvent de me l'initialiser / mettre à jour.
while ( SDL_PollEvent(&EvSDL) )
=> 1 erreur sur un std::min alors que pour moi tout est initialisé.
1 unique GDI usage error(s)
=> Correspond à la ligne de code suivante (j'ai rapidement lu que ce genre d'erreurs pouvait ne pas en être donc je ne m'inquiète pas)
m_p_Renderer = SDL_CreateRenderer(m_p_Ecran,-1,SDL_RENDERER_SOFTWARE);
Donc je considère qu'au vu de ces résultats mon programme n'a plus de problème si ce n'est mon TTF_OpenFont mais je regarderait cela plus tard et le problème sur mon std::min.
Je publierait mon code lorsque mon programme sera terminé (c'est un Tetris, je voulais être original).
Partager