Turned functions in video_systems.?pp into class VideoSystem
authorIngo Ruhnke <grumbel@gmx.de>
Sun, 6 Dec 2009 09:11:12 +0000 (09:11 +0000)
committerIngo Ruhnke <grumbel@gmx.de>
Sun, 6 Dec 2009 09:11:12 +0000 (09:11 +0000)
SVN-Revision: 6183

src/supertux/gameconfig.cpp
src/supertux/gameconfig.hpp
src/supertux/main.cpp
src/video/drawing_context.cpp
src/video/surface.cpp
src/video/texture_manager.cpp
src/video/video_systems.cpp
src/video/video_systems.hpp

index d90ccc0..59a2c0a 100644 (file)
@@ -32,7 +32,7 @@ Config::Config() :
   aspect_size(0, 0), // auto detect
   magnification(1.0f),
   use_fullscreen(false),
-  video(AUTO_VIDEO),
+  video(VideoSystem::AUTO_VIDEO),
   try_vsync(true),
   show_fps(false),
   sound_enabled(true),
@@ -70,7 +70,7 @@ Config::load()
     config_video_lisp->get("fullscreen", use_fullscreen);
     std::string video_string;
     config_video_lisp->get("video", video_string);
-    video = get_video_system(video_string);
+    video = VideoSystem::get_video_system(video_string);
     config_video_lisp->get("vsync", try_vsync);
 
     config_video_lisp->get("fullscreen_width",  fullscreen_size.width);
@@ -113,7 +113,7 @@ Config::save()
 
   writer.start_list("video");
   writer.write("fullscreen", use_fullscreen);
-  writer.write("video", get_video_string(video));
+  writer.write("video", VideoSystem::get_video_string(video));
   writer.write("vsync", try_vsync);
 
   writer.write("fullscreen_width",  fullscreen_size.width);
index 2d708c4..527241f 100644 (file)
@@ -43,7 +43,7 @@ public:
   float magnification;
 
   bool use_fullscreen;
-  VideoSystem video;
+  VideoSystem::Enum video;
   bool try_vsync;
   bool show_fps;
   bool sound_enabled;
index 31d8f43..0d88d31 100644 (file)
@@ -333,7 +333,7 @@ Main::parse_commandline(int argc, char** argv)
       } 
       else 
       {
-        g_config->video = get_video_system(argv[i]);
+        g_config->video = VideoSystem::get_video_system(argv[i]);
       }
     } else if(arg == "--show-fps") {
       g_config->show_fps = true;
index d5a5be1..e831fe0 100644 (file)
@@ -73,8 +73,8 @@ DrawingContext::init_renderer()
   delete renderer;
   delete lightmap;
 
-  renderer = new_renderer();
-  lightmap = new_lightmap();
+  renderer = VideoSystem::new_renderer();
+  lightmap = VideoSystem::new_lightmap();
 }
 
 void
index 926342e..c996e51 100644 (file)
@@ -44,7 +44,7 @@ Surface::Surface(const std::string& file) :
   flipx(false)
 {
   texture->ref();
-  surface_data = new_surface_data(*this);
+  surface_data = VideoSystem::new_surface_data(*this);
 }
 
 Surface::Surface(const std::string& file, const Rect& rect_) :
@@ -54,7 +54,7 @@ Surface::Surface(const std::string& file, const Rect& rect_) :
   flipx(false)
 {
   texture->ref();
-  surface_data = new_surface_data(*this);
+  surface_data = VideoSystem::new_surface_data(*this);
 }
 
 Surface::Surface(const Surface& rhs) :
@@ -64,7 +64,7 @@ Surface::Surface(const Surface& rhs) :
   flipx(false)
 {
   texture->ref();
-  surface_data = new_surface_data(*this);
+  surface_data = VideoSystem::new_surface_data(*this);
 }
 
 const Surface& 
@@ -79,7 +79,7 @@ Surface::operator=(const Surface& rhs)
 
 Surface::~Surface()
 {
-  free_surface_data(surface_data);
+  VideoSystem::free_surface_data(surface_data);
   texture->unref();
 }
 
index ca311ed..5cb962b 100644 (file)
@@ -98,7 +98,7 @@ TextureManager::create_image_texture(const std::string& filename)
 
     Texture* result = 0;
     try {
-      result = new_texture(image);
+      result = VideoSystem::new_texture(image);
       result->set_filename(filename);
     } catch(...) {
       delete result;
@@ -132,7 +132,7 @@ TextureManager::create_image_texture(const std::string& filename)
 
         Texture* result = 0;
         try {
-          result = new_texture(image);
+          result = VideoSystem::new_texture(image);
           result->set_filename("-dummy-texture-.png");
         } catch(...) {
           delete result;
index ab2dc8a..c148990 100644 (file)
@@ -30,7 +30,8 @@
 #include "video/texture.hpp"
 #include "video/video_systems.hpp"
 
-Renderer *new_renderer()
+Renderer*
+VideoSystem::new_renderer()
 {
   switch(g_config->video)
   {
@@ -62,7 +63,8 @@ Renderer *new_renderer()
   }
 }
 
-Lightmap *new_lightmap()
+Lightmap*
+VideoSystem::new_lightmap()
 {
   switch(g_config->video)
   {
@@ -88,7 +90,8 @@ Lightmap *new_lightmap()
   }
 }
 
-Texture *new_texture(SDL_Surface *image)
+Texture*
+VideoSystem::new_texture(SDL_Surface *image)
 {
   switch(g_config->video)
   {
@@ -114,7 +117,8 @@ Texture *new_texture(SDL_Surface *image)
   }
 }
 
-void *new_surface_data(const Surface &surface)
+void*
+VideoSystem::new_surface_data(const Surface &surface)
 {
   switch(g_config->video)
   {
@@ -140,12 +144,15 @@ void *new_surface_data(const Surface &surface)
   }
 }
 
-void free_surface_data(void *surface_data)
+void
+VideoSystem::free_surface_data(void *surface_data)
 {
+  // FIXME: this won't call any destructors
   delete reinterpret_cast<char *>(surface_data);
 }
 
-VideoSystem get_video_system(const std::string &video)
+VideoSystem::Enum
+VideoSystem::get_video_system(const std::string &video)
 {
   if(video == "auto")
   {
@@ -167,7 +174,8 @@ VideoSystem get_video_system(const std::string &video)
   }
 }
 
-std::string get_video_string(VideoSystem video)
+std::string
+VideoSystem::get_video_string(VideoSystem::Enum video)
 {
   switch(video)
   {
index c4e79b1..d15d067 100644 (file)
@@ -27,21 +27,32 @@ class Lightmap;
 class Texture;
 class Surface;
 
-enum VideoSystem {
-  AUTO_VIDEO,
-  OPENGL,
-  PURE_SDL,
-  NUM_SYSTEMS
+class VideoSystem
+{
+public:
+  enum Enum {
+    AUTO_VIDEO,
+    OPENGL,
+    PURE_SDL,
+    NUM_SYSTEMS
+  };
+
+public:
+  static Renderer* new_renderer();
+  static Lightmap* new_lightmap();
+  static Texture*  new_texture(SDL_Surface *image);
+  static void*     new_surface_data(const Surface &surface);
+  static void      free_surface_data(void *surface_data);
+
+  static Enum get_video_system(const std::string &video);
+  static std::string get_video_string(Enum video);
+
+private:
+  VideoSystem();
+  VideoSystem(const VideoSystem&);
+  VideoSystem& operator=(const VideoSystem&);
 };
 
-Renderer* new_renderer();
-Lightmap* new_lightmap();
-Texture*  new_texture(SDL_Surface *image);
-void*     new_surface_data(const Surface &surface);
-void      free_surface_data(void *surface_data);
-VideoSystem get_video_system(const std::string &video);
-std::string get_video_string(VideoSystem video);
-
 #endif
 
 /* EOF */