Converted first thing to shared pointers.
This commit is contained in:
@ -16,11 +16,7 @@ void AssetManager::update() {
|
||||
}
|
||||
|
||||
void AssetManager::queueLoad(const std::vector<std::shared_ptr<Asset>> assets) {
|
||||
std::merge(
|
||||
this->assetsToLoad.begin(), this->assetsToLoad.end(),
|
||||
assets.begin(), assets.end(),
|
||||
this->assetsToLoad.begin()
|
||||
);
|
||||
assetsToLoad.insert(this->assetsToLoad.end(), assets.begin(), assets.end());
|
||||
}
|
||||
|
||||
void AssetManager::queueLoad(const std::shared_ptr<Asset> &asset) {
|
||||
@ -33,11 +29,7 @@ void AssetManager::queueUnload(
|
||||
std::cout <<
|
||||
"Asset list was queued to unload, but is not yet implemented" <<
|
||||
std::endl;
|
||||
std::merge(
|
||||
this->assetsToUnload.begin(), this->assetsToUnload.end(),
|
||||
assets.begin(), assets.end(),
|
||||
this->assetsToUnload.begin()
|
||||
);
|
||||
assetsToUnload.insert(assetsToUnload.end(), assets.begin(), assets.end());
|
||||
}
|
||||
|
||||
void AssetManager::queueUnload(const std::shared_ptr<Asset> &asset) {
|
||||
@ -51,17 +43,17 @@ void AssetManager::queueSwap(
|
||||
const std::vector<std::shared_ptr<Asset>> &newAssets,
|
||||
const std::vector<std::shared_ptr<Asset>> &oldAssets
|
||||
) {
|
||||
std::vector<Asset*> unload;
|
||||
std::vector<Asset*> load;
|
||||
std::vector<std::shared_ptr<Asset>> unload;
|
||||
std::vector<std::shared_ptr<Asset>> load;
|
||||
|
||||
// Determine assets to unload.
|
||||
std::for_each(oldAssets.begin(), oldAssets.end(), [&](Asset *asset){
|
||||
std::for_each(oldAssets.begin(), oldAssets.end(), [&](const auto &asset){
|
||||
auto it = std::find(newAssets.begin(), newAssets.end(), asset);
|
||||
if(it == newAssets.end()) unload.push_back(asset);
|
||||
});
|
||||
|
||||
// Determine assets to load
|
||||
std::for_each(newAssets.begin(), newAssets.end(), [&](Asset *asset){
|
||||
std::for_each(newAssets.begin(), newAssets.end(), [&](const auto &asset){
|
||||
auto it = std::find(oldAssets.begin(), oldAssets.end(), asset);
|
||||
if(it == oldAssets.end()) load.push_back(asset);
|
||||
});
|
||||
|
@ -90,9 +90,9 @@ namespace Dawn {
|
||||
|
||||
auto existing = this->assets.find(name);
|
||||
if(existing != this->assets.end()) {
|
||||
return (T*)existing->second;
|
||||
return dynamic_pointer_cast<T>(existing->second);
|
||||
}
|
||||
auto asset = new T(name);
|
||||
auto asset = std::make_shared<T>(name);
|
||||
this->assets[name] = asset;
|
||||
return asset;
|
||||
}
|
||||
|
Reference in New Issue
Block a user