blob: 3805d97eba0b8ce02770bf5d46e23b57fd3aba23 [file] [log] [blame]
#ifndef egl_Texture_hpp
#define egl_Texture_hpp
#include "common/Object.hpp"
namespace sw
{
class Resource;
}
namespace egl
{
class Texture : public gl::NamedObject
{
public:
Texture(GLuint name) : NamedObject(name) {}
virtual void releaseTexImage() = 0;
virtual sw::Resource *getResource() const = 0;
virtual void sweep() = 0; // Garbage collect if no external references
void release() override
{
int refs = dereference();
if(refs > 0)
{
sweep();
}
else
{
delete this;
}
}
};
}
#endif // egl_Texture_hpp