#include <assert.h>
#include <string>
+#include "supertux/globals.hpp"
#include "video/texture_manager.hpp"
/// bitset for drawing effects
class Texture
{
protected:
- int refcount;
std::string filename;
public:
- Texture() : refcount(0), filename() {}
- virtual ~Texture() {}
+ Texture() : filename() {}
+ virtual ~Texture()
+ {
+ if (texture_manager)
+ texture_manager->release(this);
+ }
virtual unsigned int get_texture_width() const = 0;
virtual unsigned int get_texture_height() const = 0;
this->filename = filename;
}
- void ref()
- {
- refcount++;
- }
-
- void unref()
- {
- assert(refcount > 0);
- refcount--;
- if(refcount == 0)
- release();
- }
-
-private:
- void release()
- {
- texture_manager->release(this);
- }
-
private:
Texture(const Texture&);
Texture& operator=(const Texture&);