you can compare colors now
[supertux.git] / src / main.cpp
index e616ffe..38180b5 100644 (file)
@@ -278,7 +278,8 @@ static bool parse_commandline(int argc, char** argv)
         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;
@@ -362,6 +363,8 @@ void init_video()
   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();
@@ -369,6 +372,12 @@ void init_video()
     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);
@@ -404,11 +413,13 @@ void init_video()
   }
 #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;