pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] [pingus] push by address@hidden - Fallback to SDL when anot


From: pingus
Subject: [Pingus-CVS] [pingus] push by address@hidden - Fallback to SDL when another renderer init fails on 2011-10-19 22:54 GMT
Date: Wed, 19 Oct 2011 22:55:14 +0000

Revision: 74183aa2c698
Author:   Ingo Ruhnke <address@hidden>
Date:     Wed Oct 19 15:54:10 2011
Log:      Fallback to SDL when another renderer init fails

http://code.google.com/p/pingus/source/detail?r=74183aa2c698

Modified:
 /src/pingus/pingus_main.cpp

=======================================
--- /src/pingus/pingus_main.cpp Thu Oct 13 19:03:23 2011
+++ /src/pingus/pingus_main.cpp Wed Oct 19 15:54:10 2011
@@ -605,20 +605,31 @@
       fbtype = cmd_options.framebuffer_type.get();
     }

-    SDLSystem system;
+    Size screen_size(800, 600);
     if (cmd_options.geometry.is_set())
     {
-      system.create_window(fbtype,
-                           cmd_options.geometry.get(),
- cmd_options.fullscreen.is_set() ? cmd_options.fullscreen.get() : false, - cmd_options.resizable.is_set() ? cmd_options.resizable.get() : true);
-    }
-    else
-    {
-      system.create_window(fbtype,
-                           Size(800, 600),
- cmd_options.fullscreen.is_set() ? cmd_options.fullscreen.get() : false, - cmd_options.resizable.is_set() ? cmd_options.resizable.get() : true);
+      screen_size = cmd_options.geometry.get();
+    }
+
+ bool fullscreen = cmd_options.fullscreen.is_set() ? cmd_options.fullscreen.get() : false; + bool resizable = cmd_options.resizable.is_set() ? cmd_options.resizable.get() : true;
+
+    SDLSystem system;
+    try
+    {
+      system.create_window(fbtype, screen_size, fullscreen, resizable);
+    }
+    catch(const std::exception& err)
+    {
+      if (fbtype == SDL_FRAMEBUFFER)
+      {
+        throw;
+      }
+      else
+      {
+ log_error("couldn't create window, falling back to SDL: " << err.what()); + system.create_window(SDL_FRAMEBUFFER, screen_size, fullscreen, resizable);
+      }
     }

     SavegameManager savegame_manager("savegames/savegames.scm");



reply via email to

[Prev in Thread] Current Thread [Next in Thread]