CmResource.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmISerializable.h"
  4. #include "CmUUID.h"
  5. namespace CamelotEngine
  6. {
  7. /**
  8. * @brief Base class for all resources used in the engine.
  9. */
  10. class CM_EXPORT Resource : public ISerializable
  11. {
  12. public:
  13. Resource(/*const UUID& sourceUUID*/) // TODO - Temporarily don't initialize UUID, because I want texture to inherit from resource and UUIDs arent set up yet
  14. :mSize(0) /*mSourceUUID(sourceUUID),*/
  15. {}
  16. virtual ~Resource() {};
  17. virtual void load() = 0;
  18. protected:
  19. friend class Resources;
  20. //virtual void unload() = 0;
  21. //virtual void calculateSize() = 0;
  22. //virtual void reload();
  23. UUID mSourceUUID;
  24. UINT32 mSize;
  25. /************************************************************************/
  26. /* SERIALIZATION */
  27. /************************************************************************/
  28. public:
  29. friend class ResourceST;
  30. virtual SerializableType* getSerializable() const;
  31. static Resource* newObject();
  32. };
  33. }