namespace GL {
class ResourceManager;
+class Resources;
class Resource
{
void set_manager(ResourceManager *);
ResourceManager *get_manager() const { return manager; }
void *get_manager_data() const { return manager_data; }
- virtual AsyncLoader *load(IO::Seekable &) = 0;
+ virtual int get_load_priority() const { return 0; }
+ virtual AsyncLoader *load(IO::Seekable &, const Resources * = 0) = 0;
virtual bool is_loaded() const;
+
+ /** Returns the amount of graphics memory used by this resource. The
+ returned value must not change while the resource is loaded. */
virtual UInt64 get_data_size() const = 0;
+
virtual void unload() = 0;
};