J’ai enfin réglé un bug qui trainait depuis très longtemps. Lorsqu’on déplaçait la fenêtre ou si on la redimensionnait, il y avait un crash qui disait ceci :

Direct3D9: (ERROR) :All user created D3DPOOL_DEFAULT surfaces must be freed before ResetEx can succeed. ResetEx Fails.
Direct3D9: (ERROR) :ResetEx failed and ResetEx/TestCooperativeLevel/Release are the only legal APIs to be called subsequently
D3D9 Helper: IDirect3DDevice9::Reset failed: D3DERR_INVALIDCALL

J’ai chercher longtemps avant de trouver c’était quoi. En fait, tout était correct exepter une chose. J’appelais 2 fois de suite cette série de code :

OnLostDevice();
HR(mpDevice->Reset(&mD3dPresentParam));
OnResetDevice();

J’ai enlever le doublon et mon crash a été réglé comme par magie. J’ai trouvé l’indice qui me fallait en allant faire des recherches sur http://www.gamedev.net/  😛