CmResource.h 768 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmIReflectable.h"
  4. #include "CmCoreObject.h"
  5. namespace CamelotFramework
  6. {
  7. /**
  8. * @brief Base class for all resources used in the engine.
  9. */
  10. class CM_EXPORT Resource : public IReflectable, public CoreObject
  11. {
  12. public:
  13. Resource(bool requiresGpuInitialization = true);
  14. virtual ~Resource() {};
  15. protected:
  16. friend class Resources;
  17. UINT32 mSize;
  18. /************************************************************************/
  19. /* SERIALIZATION */
  20. /************************************************************************/
  21. public:
  22. friend class ResourceRTTI;
  23. static RTTITypeBase* getRTTIStatic();
  24. virtual RTTITypeBase* getRTTI() const;
  25. };
  26. }