Use boost::shared_ptr<Surface> instead of std::auto_ptr<Surface>
authorgrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Sun, 13 Dec 2009 22:11:09 +0000 (22:11 +0000)
committergrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Sun, 13 Dec 2009 22:11:09 +0000 (22:11 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6206 837edb03-e0f3-0310-88ca-d4d4e8b29345

19 files changed:
src/badguy/yeti.hpp
src/gui/menu.hpp
src/object/background.hpp
src/object/cloud_particle_system.hpp
src/object/comet_particle_system.hpp
src/object/ghost_particle_system.hpp
src/object/level_time.hpp
src/object/player.hpp
src/object/rain_particle_system.hpp
src/supertux/console.hpp
src/supertux/game_session.hpp
src/supertux/info_box.hpp
src/supertux/info_box_line.cpp
src/supertux/info_box_line.hpp
src/supertux/player_status.hpp
src/supertux/textscroller.hpp
src/supertux/title_screen.hpp
src/video/surface.cpp
src/video/surface.hpp

index ac2603b..326b263 100644 (file)
@@ -63,7 +63,7 @@ private:
   Timer safe_timer;
   int stomp_count;
   int hit_points;
-  std::auto_ptr<Surface> hud_head;
+  SurfacePtr hud_head;
 };
 
 #endif
index 13f7e22..5c97fa1 100644 (file)
 #include <SDL.h>
 
 #include "video/color.hpp"
+#include "video/surface_ptr.hpp"
 
 class DrawingContext;
 class MenuItem;
-class Surface;
 
 bool confirm_dialog(Surface* background, std::string text);
 
@@ -138,11 +138,11 @@ private:
   int arrange_left;
   int active_item;
 
-  std::auto_ptr<Surface> checkbox;
-  std::auto_ptr<Surface> checkbox_checked;
-  std::auto_ptr<Surface> back;
-  std::auto_ptr<Surface> arrow_left;
-  std::auto_ptr<Surface> arrow_right;
+  SurfacePtr checkbox;
+  SurfacePtr checkbox_checked;
+  SurfacePtr back;
+  SurfacePtr arrow_left;
+  SurfacePtr arrow_right;
 };
 
 #endif
index 75a1c93..4c55d7c 100644 (file)
@@ -65,9 +65,9 @@ private:
   float speed_y; /**< scroll-speed in vertical direction */
   Vector scroll_speed;
   Vector scroll_offset;
-  std::auto_ptr<Surface> image_top; /**< image to draw above pos */
-  std::auto_ptr<Surface> image; /**< image to draw, anchored at pos */
-  std::auto_ptr<Surface> image_bottom; /**< image to draw below pos+screenheight */
+  SurfacePtr image_top; /**< image to draw above pos */
+  SurfacePtr image; /**< image to draw, anchored at pos */
+  SurfacePtr image_bottom; /**< image to draw below pos+screenheight */
 };
 
 #endif /*SUPERTUX_BACKGROUND_H*/
index db7b3d3..225d246 100644 (file)
@@ -20,6 +20,7 @@
 #include <memory>
 
 #include "object/particlesystem.hpp"
+#include "video/surface_ptr.hpp"
 
 class CloudParticleSystem : public ParticleSystem
 {
@@ -45,7 +46,7 @@ private:
     {}
   };
 
-  std::auto_ptr<Surface> cloudimage;
+  SurfacePtr cloudimage;
 
 private:
   CloudParticleSystem(const CloudParticleSystem&);
index f627a05..c38e0b5 100644 (file)
@@ -20,6 +20,7 @@
 #include <memory>
 
 #include "object/particlesystem_interactive.hpp"
+#include "video/surface_ptr.hpp"
 
 class CometParticleSystem : public ParticleSystem_Interactive
 {
@@ -46,7 +47,7 @@ private:
     {}
   };
 
-  std::auto_ptr<Surface> cometimages[2];
+  SurfacePtr cometimages[2];
 
 private:
   CometParticleSystem(const CometParticleSystem&);
index f8cf89b..b8eebb3 100644 (file)
@@ -20,6 +20,7 @@
 #include <memory>
 
 #include "object/particlesystem.hpp"
+#include "video/surface_ptr.hpp"
 
 class GhostParticleSystem : public ParticleSystem
 {
@@ -45,7 +46,7 @@ private:
     {}
   };
 
-  std::auto_ptr<Surface> ghosts[2];
+  SurfacePtr ghosts[2];
 
 private:
   GhostParticleSystem(const GhostParticleSystem&);
index 36b9870..3650c9c 100644 (file)
@@ -23,8 +23,7 @@
 #include "supertux/script_interface.hpp"
 #include "util/reader_fwd.hpp"
 #include "video/color.hpp"
-
-class Surface;
+#include "video/surface_ptr.hpp"
 
 class LevelTime : public GameObject, 
                   public ScriptInterface
@@ -69,7 +68,7 @@ public:
    */
 
 private:
-  std::auto_ptr<Surface> time_surface;
+  SurfacePtr time_surface;
   bool running;
   float time_left;
 };
index 0db526c..ebcf863 100644 (file)
@@ -300,7 +300,7 @@ public:
 
   std::auto_ptr<Sprite> sprite; /**< The main sprite representing Tux */
 
-  std::auto_ptr<Surface> airarrow; /**< arrow indicating Tux' position when he's above the camera */
+  SurfacePtr airarrow; /**< arrow indicating Tux' position when he's above the camera */
 
   Vector floor_normal;
   void try_grab();
index e3c257f..296740e 100644 (file)
@@ -20,6 +20,7 @@
 #include <memory>
 
 #include "object/particlesystem_interactive.hpp"
+#include "video/surface_ptr.hpp"
 
 class RainParticleSystem : public ParticleSystem_Interactive
 {
@@ -45,7 +46,7 @@ private:
     {}
   };
 
-  std::auto_ptr<Surface> rainimages[2];
+  SurfacePtr rainimages[2];
 
 private:
   RainParticleSystem(const RainParticleSystem&);
index 61c0d9b..b463b51 100644 (file)
 #include <sstream>
 #include <vector>
 
+#include "video/surface_ptr.hpp"
+
 class Console;
 class ConsoleStreamBuffer;
 class ConsoleCommandReceiver;
 class DrawingContext;
-class Surface;
 class Font;
 
 class Console
@@ -85,8 +86,8 @@ private:
   std::list<std::string>::iterator history_position; /**< item of command history that is currently displayed */
   std::list<std::string> lines; /**< backbuffer of lines sent to the console. New lines get added to front. */
 
-  std::auto_ptr<Surface> background; /**< console background image */
-  std::auto_ptr<Surface> background2; /**< second, moving console background image */
+  SurfacePtr background; /**< console background image */
+  SurfacePtr background2; /**< second, moving console background image */
 
   HSQUIRRELVM vm; /**< squirrel thread for the console (with custom roottable) */
   HSQOBJECT vm_object;
index 11d3a2e..57d613f 100644 (file)
@@ -102,7 +102,7 @@ private:
   void process_menu();
 
   std::auto_ptr<Level> level;
-  std::auto_ptr<Surface> statistics_backdrop;
+  SurfacePtr statistics_backdrop;
 
   // scripts
   typedef std::vector<HSQOBJECT> ScriptList;
index 6286a64..ddc9230 100644 (file)
 #include <string>
 #include <vector>
 
+#include "video/surface_ptr.hpp"
+
 class DrawingContext;
 class InfoBoxLine;
-class Surface;
 
 /** This class is displaying a box with information text inside the game */
 class InfoBox
@@ -43,8 +44,8 @@ private:
   size_t firstline;
   std::vector<InfoBoxLine*> lines;
   std::map<std::string, Surface*> images;
-  std::auto_ptr<Surface> arrow_scrollup;
-  std::auto_ptr<Surface> arrow_scrolldown;
+  SurfacePtr arrow_scrollup;
+  SurfacePtr arrow_scrolldown;
 
 private:
   InfoBox(const InfoBox&);
index 16a69d6..119733f 100644 (file)
@@ -106,7 +106,7 @@ InfoBoxLine::InfoBoxLine(char format_char, const std::string& text) :
   font(Resources::normal_font), 
   color(),
   text(text), 
-  image(0)
+  image()
 {
   font = get_font_by_format_char(format_char);
   lineType = get_linetype_by_format_char(format_char);
index d2b3821..7d5e9fe 100644 (file)
 #include <memory>
 
 #include "video/color.hpp"
+#include "video/surface_ptr.hpp"
 
 class DrawingContext;
 class Font;
 class Rectf;
-class Surface;
 
 /**
  * Helper class for InfoBox: Represents a line of text
@@ -49,7 +49,7 @@ private:
   Font* font;
   Color color;
   std::string text;
-  std::auto_ptr<Surface> image;
+  SurfacePtr image;
 
 private:
   InfoBoxLine(const InfoBoxLine&);
index 3f46b53..aebee17 100644 (file)
@@ -23,8 +23,7 @@
 #include "util/reader_fwd.hpp"
 #include "util/writer_fwd.hpp"
 #include "video/color.hpp"
-
-class Surface;
+#include "video/surface_ptr.hpp"
 
 static const float BORDER_X = 10;
 static const float BORDER_Y = 10;
@@ -59,7 +58,7 @@ public:
   int max_ice_bullets; /**< maximum number of ice bullets in play */
 
 private:
-  std::auto_ptr<Surface> coin_surface;
+  SurfacePtr coin_surface;
 
 private:
   PlayerStatus(const PlayerStatus&);
index da4bc65..e77f688 100644 (file)
@@ -22,9 +22,9 @@
 
 #include "supertux/screen.hpp"
 #include "video/color.hpp"
+#include "video/surface_ptr.hpp"
 
 class DrawingContext;
-class Surface;
 class Font;
 class InfoBoxLine;
 
@@ -50,7 +50,7 @@ private:
   float defaultspeed;
   float speed;
   std::string music;
-  std::auto_ptr<Surface> background;
+  SurfacePtr background;
   std::vector<InfoBoxLine*> lines;
   float scroll;
   bool fading;
index 33964fa..19c66ad 100644 (file)
@@ -56,7 +56,7 @@ private:
   
 private:
   std::auto_ptr<MainMenu> main_menu;
-  std::auto_ptr<Surface> frame;
+  SurfacePtr frame;
   std::auto_ptr<CodeController> controller;
   std::auto_ptr<GameSession> titlesession;
 
index 4d8582b..6df0cf1 100644 (file)
 #include "video/texture.hpp"
 #include "video/video_systems.hpp"
 
-std::auto_ptr<Surface>
+SurfacePtr
 Surface::create(const std::string& file)
 {
-  return std::auto_ptr<Surface>(new Surface(file));
+  return SurfacePtr(new Surface(file));
 }
 
-std::auto_ptr<Surface> 
+SurfacePtr
 Surface::create(const std::string& file, const Rect& rect)
 {
-  return std::auto_ptr<Surface>(new Surface(file, rect));
+  return SurfacePtr(new Surface(file, rect));
 }
 
 Surface::Surface(const std::string& file) :
index e5d5c97..ad1d9fe 100644 (file)
 
 #include "math/vector.hpp"
 #include "math/rect.hpp"
+#include "video/surface_ptr.hpp"
 
 class Texture;
 class SurfaceData;
 
-/**
- * A rectangular image.
- * The class basically holds a reference to a texture with additional UV
- * coordinates that specify a rectangular area on this texture
- */
+/** A rectangular image.  The class basically holds a reference to a
+    texture with additional UV coordinates that specify a rectangular
+    area on this texture */
 class Surface
 {
 public:
-  static std::auto_ptr<Surface> create(const std::string& file);
-  static std::auto_ptr<Surface> create(const std::string& file, const Rect& rect);
+  static SurfacePtr create(const std::string& file);
+  static SurfacePtr create(const std::string& file, const Rect& rect);
 
 private:
   Texture* texture;
@@ -62,9 +61,8 @@ public:
   int get_width() const;
   int get_height() const;
   Vector get_position() const;
-  /**
-   * returns a vector containing width and height
-   */
+
+  /** returns a vector containing width and height */
   Vector get_size() const;
 };