More fixes
[supertux.git] / src / video / video_systems.hpp
index c4e79b1..e82ceda 100644 (file)
 #include <SDL.h>
 #include <string>
 
+#include "video/texture_ptr.hpp"
+
 class Renderer;
 class Lightmap;
-class Texture;
 class Surface;
-
-enum VideoSystem {
-  AUTO_VIDEO,
-  OPENGL,
-  PURE_SDL,
-  NUM_SYSTEMS
+class SurfaceData;
+
+class VideoSystem
+{
+public:
+  enum Enum {
+    AUTO_VIDEO,
+    OPENGL,
+    PURE_SDL,
+    NUM_SYSTEMS
+  };
+
+public:
+  static Renderer* new_renderer();
+  static Lightmap* new_lightmap();
+  static TexturePtr   new_texture(SDL_Surface *image);
+  static SurfaceData* new_surface_data(const Surface &surface);
+  static void      free_surface_data(SurfaceData* 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 */