print_usage(argv[0]);
throw std::runtime_error("Need to specify a parameter for aspect switch");
}
- if(strcasecmp(argv[i], "auto") == 0) {
+ if(strcasecmp(argv[i+1], "auto") == 0) {
+ i++;
config->aspect_ratio = -1;
} else {
int aspect_width, aspect_height;
if(texture_manager != NULL)
texture_manager->save_textures();
+/* unfortunately only newer SDLs have these infos */
+#if SDL_MAJOR_VERSION > 1 || SDL_MINOR_VERSION > 2 || (SDL_MINOR_VERSION == 2 && SDL_PATCHLEVEL >= 10)
/* find which resolution the user normally uses */
if(desktop_width == 0) {
const SDL_VideoInfo *info = SDL_GetVideoInfo();
desktop_height = info->current_h;
}
+ if(config->try_vsync) {
+ /* we want vsync for smooth scrolling */
+ SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1);
+ }
+#endif
+
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5);
}
#endif
+ SDL_ShowCursor(0);
+
double aspect_ratio = config->aspect_ratio;
// try to guess aspect ratio of monitor if needed
if (aspect_ratio <= 0) {
- if(desktop_width > 0) {
+ if(config->use_fullscreen && desktop_width > 0) {
aspect_ratio = static_cast<double>(desktop_width) / static_cast<double>(desktop_height);
} else {
aspect_ratio = 4.0 / 3.0;
SCREEN_HEIGHT = static_cast<int> (600 * 1/aspect_ratio);
}
+ log_info << (config->use_fullscreen?"fullscreen ":"window ") << SCREEN_WIDTH << "x" << SCREEN_HEIGHT << "\n";
+
// setup opengl state and transform
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);