diff --git a/desktop_version/src/Graphics.cpp b/desktop_version/src/Graphics.cpp index 468027a8..4adab7de 100644 --- a/desktop_version/src/Graphics.cpp +++ b/desktop_version/src/Graphics.cpp @@ -3279,11 +3279,21 @@ void Graphics::processVsync() SDL_SetHintWithPriority(SDL_HINT_RENDER_VSYNC, vsync ? "1" : "0", SDL_HINT_OVERRIDE); // FIXME: Sigh... work around SDL2 bug where the VSync hint is only listened to at renderer creation - SDL_DestroyRenderer(screenbuffer->m_renderer); + if (screenbuffer == NULL) + { + return; + } + if (screenbuffer->m_renderer != NULL) + { + SDL_DestroyRenderer(screenbuffer->m_renderer); + } screenbuffer->m_renderer = SDL_CreateRenderer(screenbuffer->m_window, -1, 0); // Ugh, have to re-create m_screenTexture as well, otherwise the screen will be black... - SDL_DestroyTexture(screenbuffer->m_screenTexture); + if (screenbuffer->m_screenTexture != NULL) + { + SDL_DestroyTexture(screenbuffer->m_screenTexture); + } // FIXME: This is duplicated from Screen::init()! screenbuffer->m_screenTexture = SDL_CreateTexture( screenbuffer->m_renderer,