BsResource.cpp 1.3 KB

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