static void set_resizable(int on, int x_res, int y_res) { #if 0 /* no such api :( */ SDL_SetWindowResizable(window, on ? SDL_ENABLE : SDL_DISABLE); #else #ifdef X_SUPPORT if (x11_display) X_set_resizable(x11_display, x11_window, on, x_res, y_res); #endif #endif }
void SDLBaseVideoSystem::apply_video_mode() { if (!g_config->use_fullscreen) { SDL_SetWindowFullscreen(m_sdl_window.get(), 0); Size window_size; SDL_GetWindowSize(m_sdl_window.get(), &window_size.width, &window_size.height); if (g_config->window_size.width != window_size.width || g_config->window_size.height != window_size.height) { SDL_SetWindowSize(m_sdl_window.get(), g_config->window_size.width, g_config->window_size.height); } #if SDL_VERSION_ATLEAST(2,0,5) SDL_SetWindowResizable(m_sdl_window.get(), static_cast<SDL_bool>(g_config->window_resizable)); #endif } else { if (g_config->fullscreen_size.width == 0 && g_config->fullscreen_size.height == 0) { if (SDL_SetWindowFullscreen(m_sdl_window.get(), SDL_WINDOW_FULLSCREEN_DESKTOP) != 0) { log_warning << "failed to switch to desktop fullscreen mode: " << SDL_GetError() << std::endl; } else { log_info << "switched to desktop fullscreen mode" << std::endl; } } else { SDL_DisplayMode mode; mode.format = SDL_PIXELFORMAT_RGB888; mode.w = g_config->fullscreen_size.width; mode.h = g_config->fullscreen_size.height; mode.refresh_rate = g_config->fullscreen_refresh_rate; mode.driverdata = nullptr; if (SDL_SetWindowDisplayMode(m_sdl_window.get(), &mode) != 0) { log_warning << "failed to set display mode: " << mode.w << "x" << mode.h << "@" << mode.refresh_rate << ": " << SDL_GetError() << std::endl; } else { if (SDL_SetWindowFullscreen(m_sdl_window.get(), SDL_WINDOW_FULLSCREEN) != 0) { log_warning << "failed to switch to fullscreen mode: " << mode.w << "x" << mode.h << "@" << mode.refresh_rate << ": " << SDL_GetError() << std::endl; } else { log_info << "switched to fullscreen mode: " << mode.w << "x" << mode.h << "@" << mode.refresh_rate << std::endl; } } } } }
void window::set_resizable(bool resizable) { SDL_SetWindowResizable(handle.get(), resizable ? SDL_TRUE : SDL_FALSE); }