BsResource.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Resources/BsResource.h"
  4. #include "RTTI/BsResourceRTTI.h"
  5. #include "Resources/BsResourceMetaData.h"
  6. namespace bs
  7. {
  8. Resource::Resource(bool initializeOnRenderThread)
  9. :CoreObject(initializeOnRenderThread), mSize(0), mKeepSourceData(true)
  10. {
  11. mMetaData = bs_shared_ptr_new<ResourceMetaData>();
  12. }
  13. const WString& Resource::getName() const
  14. {
  15. return mMetaData->displayName;
  16. }
  17. void Resource::setName(const WString& name)
  18. {
  19. mMetaData->displayName = name;
  20. }
  21. bool Resource::areDependenciesLoaded() const
  22. {
  23. bs_frame_mark();
  24. bool areLoaded = true;
  25. {
  26. FrameVector<HResource> dependencies;
  27. getResourceDependencies(dependencies);
  28. for (auto& dependency : dependencies)
  29. {
  30. if (dependency != nullptr && !dependency.isLoaded())
  31. {
  32. areLoaded = false;
  33. break;
  34. }
  35. }
  36. }
  37. bs_frame_clear();
  38. return areLoaded;
  39. }
  40. RTTITypeBase* Resource::getRTTIStatic()
  41. {
  42. return ResourceRTTI::instance();
  43. }
  44. RTTITypeBase* Resource::getRTTI() const
  45. {
  46. return Resource::getRTTIStatic();
  47. }
  48. }