1329Fermer1331
ZerosquareLe 30/12/2015 à 19:06
1) rajouter ce qu'il faut dans cleanup() pour qu'elle puisse être appelée à tout moment (en gros, faire que ça n'essaie pas de nettoyer ce qui n'a pas encore été initialisé) -> tu élimines le cas particulier de ton premier if()

2) Splitter en deux fonctions : bool fonction1(void) { // Create the button texture (transparent) and set it as render target m_Texture = SDL_CreateTexture(Game::get()->renderer(), px, SDL_TEXTUREACCESS_TARGET, width, height); if (m_Texture == nullptr) return false; if (SDL_SetTextureBlendMode(m_Texture, SDL_BLENDMODE_BLEND) != 0) return false; if (SDL_SetRenderDrawColor(Game::get()->renderer(), 0, 0, 0, 0) != 0) return false; if (SDL_RenderClear(Game::get()->renderer()) != 0) return false; if (SDL_SetRenderTarget(Game::get()->renderer(), m_Texture) != 0) return false; return true; }void function2(void) { if (!fonction1) { cleanup(); throw Exception(ERROR_SDL_STR); } }Le principe est du C pur (et n'est pas Ximoon-compliant tongue), tu dois pouvoir faire ça plus élégamment en C++ avec des exceptions, mais comme c'est pas mon domaine je laisse quelqu'un d'autre proposer une meilleure solution smile