CmResource.h 931 B

123456789101112131415161718192021222324252627282930313233343536
  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. /**
  16. * @brief Creates a new resource handle. Should only be called by internal methods.
  17. */
  18. static HResource _createResourceHandle(ResourcePtr obj);
  19. protected:
  20. friend class Resources;
  21. UINT32 mSize;
  22. /************************************************************************/
  23. /* SERIALIZATION */
  24. /************************************************************************/
  25. public:
  26. friend class ResourceRTTI;
  27. static RTTITypeBase* getRTTIStatic();
  28. virtual RTTITypeBase* getRTTI() const;
  29. };
  30. }