pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] r3856 - in trunk/pingus/src: . display


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3856 - in trunk/pingus/src: . display
Date: Thu, 17 Jul 2008 21:07:52 +0200

Author: grumbel
Date: 2008-07-17 21:07:50 +0200 (Thu, 17 Jul 2008)
New Revision: 3856

Modified:
   trunk/pingus/src/display/display.cpp
   trunk/pingus/src/globals.cpp
   trunk/pingus/src/globals.hpp
   trunk/pingus/src/pingus_main.cpp
Log:
Replaced --delta-drawing option with --renderer RENDERER

Modified: trunk/pingus/src/display/display.cpp
===================================================================
--- trunk/pingus/src/display/display.cpp        2008-07-17 16:09:07 UTC (rev 
3855)
+++ trunk/pingus/src/display/display.cpp        2008-07-17 19:07:50 UTC (rev 
3856)
@@ -77,12 +77,24 @@
 {
   if (!framebuffer.get())
     {
-      if (0)
-        framebuffer = std::auto_ptr<Framebuffer>(new OpenGLFramebuffer());
-      else if (delta_drawing)
-        framebuffer = std::auto_ptr<Framebuffer>(new DeltaFramebuffer());
-      else
-        framebuffer = std::auto_ptr<Framebuffer>(new SDLFramebuffer());
+      switch (framebuffer_type)
+        {
+          case OPENGL_FRAMEBUFFER:
+            framebuffer = std::auto_ptr<Framebuffer>(new OpenGLFramebuffer());
+            break;
+
+          case DELTA_FRAMEBUFFER:
+            framebuffer = std::auto_ptr<Framebuffer>(new DeltaFramebuffer());
+            break;
+
+          case SDL_FRAMEBUFFER:
+            framebuffer = std::auto_ptr<Framebuffer>(new SDLFramebuffer());
+            break;
+          
+          default:
+            assert(!"Unknown framebuffer_type");
+            break;
+        }
     }
 
   if (fullscreen)

Modified: trunk/pingus/src/globals.cpp
===================================================================
--- trunk/pingus/src/globals.cpp        2008-07-17 16:09:07 UTC (rev 3855)
+++ trunk/pingus/src/globals.cpp        2008-07-17 19:07:50 UTC (rev 3856)
@@ -43,5 +43,7 @@
 
 bool        fullscreen_enabled              = false;
 bool        delta_drawing                   = false;
+
+FramebufferType framebuffer_type = DELTA_FRAMEBUFFER;
 
 /* EOF */

Modified: trunk/pingus/src/globals.hpp
===================================================================
--- trunk/pingus/src/globals.hpp        2008-07-17 16:09:07 UTC (rev 3855)
+++ trunk/pingus/src/globals.hpp        2008-07-17 19:07:50 UTC (rev 3856)
@@ -38,7 +38,6 @@
 extern bool        drag_drop_scrolling; 
 extern int         tile_size;                       ///< --tile-size
 extern bool        fullscreen_enabled;              ///< --enable-fullscreen
-extern bool        delta_drawing;                   ///< --delta-drawing
 extern int         default_screen_width;            ///< default screen width
 extern int         default_screen_height;           ///< default screen height
 extern bool        draw_collision_map;              ///<
@@ -50,6 +49,9 @@
 extern std::string  global_email;                    ///< The email address of 
the currently logged in user
 extern std::string  default_language;                ///< The default 
language, which is used when the env var LANG is not set
 extern unsigned int pingus_debug_flags;              ///< Set some bits in 
this thing to get debug infos
+
+enum FramebufferType { DELTA_FRAMEBUFFER, SDL_FRAMEBUFFER, OPENGL_FRAMEBUFFER 
};
+extern FramebufferType framebuffer_type;
 
 enum { PINGUS_DEBUG_ACTIONS     = (1 << 0),
        PINGUS_DEBUG_SOUND       = (1 << 1),

Modified: trunk/pingus/src/pingus_main.cpp
===================================================================
--- trunk/pingus/src/pingus_main.cpp    2008-07-17 16:09:07 UTC (rev 3855)
+++ trunk/pingus/src/pingus_main.cpp    2008-07-17 19:07:50 UTC (rev 3856)
@@ -239,8 +239,8 @@
                   _("Start in Window Mode"));
   argp.add_option('f', "fullscreen", "",
                   _("Start in Fullscreen"));
-  argp.add_option(336, "delta-drawing", "",
-                  _("Enable experimental delta drawing"));
+  argp.add_option('r', "renderer", "RENDERER",
+                  _("Use the given renderer (default: delta)"));
   argp.add_option(346, "enable-swcursor", "",
                   _("Enable software cursor"));
   argp.add_option('g', "geometry", "{width}x{height}",  
@@ -306,8 +306,33 @@
     {
       switch (argp.get_key()) 
         {          
-          case 336: // --delta-drawing
-            delta_drawing = true;
+          case 'r': // --renderer
+            if (argp.get_argument() == "delta")
+              {
+                framebuffer_type = DELTA_FRAMEBUFFER;
+              }
+            else if (argp.get_argument() == "opengl")
+              {
+                framebuffer_type = OPENGL_FRAMEBUFFER;
+              }
+            else if (argp.get_argument() == "sdl")
+              {
+                framebuffer_type = SDL_FRAMEBUFFER;
+              }
+            else if (argp.get_argument() == "help")
+              {
+                std::cout << "Available renderers: " << std::endl;
+                std::cout << "   delta: Software rendering with 
dirty-rectangles (default)" << std::endl;
+                std::cout << "     sdl: Software rendering" << std::endl;
+                std::cout << "  opengl: Hardware accelerated graphics" << 
std::endl;
+                exit(EXIT_SUCCESS);
+              }
+            else
+              {
+                std::cout << "Unknown renderer: " << argp.get_argument()
+                          << " use '--renderer help' to get a list of 
available rendere" << std::endl;
+                exit(EXIT_FAILURE);
+              }
             break;
 
           case 359: // --credits
@@ -361,7 +386,7 @@
 
           case 'v':
             std::cout << "Pingus " << VERSION << std::endl;
-              std::cout << "\n"
+            std::cout << "\n"
               "Copyright (C) 1998-2008 Ingo Ruhnke <address@hidden>\n"
               "See the file AUTHORS for a complete list of contributors.\n\n"
               "There is NO warranty.  You may redistribute this software\n"





reply via email to

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