Silence compiler warning
[supertux.git] / src / video / surface.hpp
index e5d5c97..0728081 100644 (file)
 
 #include "math/vector.hpp"
 #include "math/rect.hpp"
+#include "video/surface_ptr.hpp"
+#include "video/texture_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;
+  TexturePtr texture;
   SurfaceData* surface_data;
   Rect rect;
   bool flipx;
 
-public:
+private:
   Surface(const std::string& file);
   Surface(const std::string& file, const Rect& rect);
-  Surface(const Surface& other);
+  Surface(const Surface&);
+
+public:
   ~Surface();
 
-  const Surface& operator= (const Surface& other);
+  SurfacePtr clone() const;
 
   /** flip the surface horizontally */
   void hflip();
   bool get_flipx() const;
 
-  Texture *get_texture() const;
+  TexturePtr get_texture() const;
   SurfaceData* get_surface_data() const;
   int get_x() const;
   int get_y() const;
   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;
+
+private:
+  Surface& operator=(const Surface&);
 };
 
 #endif