CmResource.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmIReflectable.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 IReflectable
  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. static RTTITypeBase* getRTTIStatic();
  31. virtual RTTITypeBase* getRTTI() const;
  32. };
  33. }