|
@@ -27,16 +27,7 @@ namespace bs
|
|
|
|
|
|
|
|
Resources::~Resources()
|
|
Resources::~Resources()
|
|
|
{
|
|
{
|
|
|
- // Unload and invalidate all resources
|
|
|
|
|
- UnorderedMap<UUID, LoadedResourceData> loadedResourcesCopy;
|
|
|
|
|
-
|
|
|
|
|
- {
|
|
|
|
|
- Lock lock(mLoadedResourceMutex);
|
|
|
|
|
- loadedResourcesCopy = mLoadedResources;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- for (auto& loadedResourcePair : loadedResourcesCopy)
|
|
|
|
|
- destroy(loadedResourcePair.second.resource);
|
|
|
|
|
|
|
+ unloadAll();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
HResource Resources::load(const Path& filePath, ResourceLoadFlags loadFlags)
|
|
HResource Resources::load(const Path& filePath, ResourceLoadFlags loadFlags)
|
|
@@ -480,6 +471,20 @@ namespace bs
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ void Resources::unloadAll()
|
|
|
|
|
+ {
|
|
|
|
|
+ // Unload and invalidate all resources
|
|
|
|
|
+ UnorderedMap<UUID, LoadedResourceData> loadedResourcesCopy;
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ Lock lock(mLoadedResourceMutex);
|
|
|
|
|
+ loadedResourcesCopy = mLoadedResources;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (auto& loadedResourcePair : loadedResourcesCopy)
|
|
|
|
|
+ destroy(loadedResourcePair.second.resource);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
void Resources::destroy(ResourceHandleBase& resource)
|
|
void Resources::destroy(ResourceHandleBase& resource)
|
|
|
{
|
|
{
|
|
|
if (resource.mData == nullptr)
|
|
if (resource.mData == nullptr)
|