diff --git a/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp b/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp index d627b65..8f3894c 100644 --- a/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp +++ b/AerofoilSDL/GpDisplayDriver_SDL_GL2.cpp @@ -1301,6 +1301,13 @@ bool GpDisplayDriver_SDL_GL2::Init() windowFlags |= SDL_WINDOW_RESIZABLE; m_window = SDL_CreateWindow(GP_APPLICATION_NAME, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, m_windowWidthPhysical, m_windowHeightPhysical, windowFlags); + if (!m_window) + { + if (logger) + logger->Printf(IGpLogDriver::Category_Error, "Failed to create window: %s", SDL_GetError()); + + return false; + } if (m_isFullScreen) { diff --git a/GpShell/GpMain.cpp b/GpShell/GpMain.cpp index 9488181..d207237 100644 --- a/GpShell/GpMain.cpp +++ b/GpShell/GpMain.cpp @@ -16,6 +16,7 @@ #include "IGpDisplayDriver.h" #include "IGpFontHandler.h" #include "IGpInputDriver.h" +#include "IGpLogDriver.h" #include #include @@ -119,9 +120,17 @@ int GpMain::Run() appEnvironment->SetSystemServices(g_gpGlobalConfig.m_systemServices); // Start the display loop - displayDriver->Init(); - - appEnvironment->Run(); + if (displayDriver->Init()) + { + appEnvironment->Run(); + } + else + { + IGpLogDriver *logger = g_gpGlobalConfig.m_logger; + if (logger) + logger->Printf(IGpLogDriver::Category_Error, "Failed to start display driver"); + return -1; + } // Clean up if (inputDrivers)