BsManagedResourceManager.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsManagedResourceManager.h"
  4. #include "Resources/BsResources.h"
  5. namespace bs
  6. {
  7. ManagedResourceManager::ManagedResourceManager()
  8. {
  9. }
  10. ManagedResourceManager::~ManagedResourceManager()
  11. {
  12. clear();
  13. }
  14. void ManagedResourceManager::clear()
  15. {
  16. UnorderedMap<UUID, WeakResourceHandle<ManagedResource>> resourceCopy = mResources;
  17. for (auto& resourcePair : resourceCopy)
  18. {
  19. WeakResourceHandle<ManagedResource> resource = resourcePair.second;
  20. gResources().release((WeakResourceHandle<Resource>&)resource);
  21. }
  22. mResources.clear();
  23. }
  24. void ManagedResourceManager::registerManagedResource(const WeakResourceHandle<ManagedResource>& resource)
  25. {
  26. mResources.insert(std::make_pair(resource.getUUID(), resource));
  27. }
  28. void ManagedResourceManager::unregisterManagedResource(const WeakResourceHandle<ManagedResource>& resource)
  29. {
  30. mResources.erase(resource.getUUID());
  31. }
  32. }