]> git.tdb.fi Git - libs/gl.git/blobdiff - source/resources/resource.h
Add correct copy and move semantics to most classes
[libs/gl.git] / source / resources / resource.h
index 571d1ea56c54e61ab10c43ef0f10cce766f19bb3..2a312e960acd8b1595dc5a93fe03a5b8ed54cff7 100644 (file)
@@ -1,7 +1,8 @@
 #ifndef MSP_GL_RESOURCE_H_
 #define MSP_GL_RESOURCE_H_
 
-#include <msp/core/inttypes.h>
+#include <cstdint>
+#include <msp/core/noncopyable.h>
 #include <msp/io/seekable.h>
 
 namespace Msp {
@@ -10,7 +11,7 @@ namespace GL {
 class ResourceManager;
 class Resources;
 
-class Resource
+class Resource: public NonCopyable
 {
 public:
        class AsyncLoader
@@ -25,10 +26,11 @@ public:
        };
 
 protected:
-       ResourceManager *manager;
-       void *manager_data;
+       ResourceManager *manager = 0;
+       void *manager_data = 0;
 
-       Resource();
+       Resource() = default;
+       Resource(Resource &&);
 public:
        virtual ~Resource();
 
@@ -41,7 +43,7 @@ public:
 
        /** 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 std::size_t get_data_size() const = 0;
 
        virtual void unload() = 0;
 };