public SdlMainWindow(ILogger logger, IConfigService configService)
        {
            _logger = logger;

            _windowWidth  = configService.GetWritableConfig("Window", "Width", 1024);
            _windowHeight = configService.GetWritableConfig("Window", "Height", 768);

            _windowWidth.Changed  += OnWindowSizeConfigChanged;
            _windowHeight.Changed += OnWindowSizeConfigChanged;

            _logger.Info("Creating window and renderer with size {0}x{1}", _windowWidth.Value, _windowHeight.Value);

            if (SDL_CreateWindowAndRenderer(_windowWidth.Value, _windowHeight.Value,
                                            SDL_WindowFlags.SDL_WINDOW_RESIZABLE, out _window,
                                            out _renderer) < 0)
            {
                var error = SDL_GetError();
                _logger.Fatal("Failed to create window. SDL Error: {0}", error);
                throw new Exception($"Failed to create SDL window. {error}");
            }

            SDL_SetWindowTitle(_window, "OpenAOE");
        }
 private void OnWindowSizeConfigChanged(IWriteableConfig <int> sender, ConfigChangedEvent <int> args)
 {
     _refreshWindow = true;
 }