clean up open pipeline to render graph

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
chcurran
2021-11-03 19:15:44 -07:00
parent 6c130c7a86
commit b635e112fc
15 changed files with 616 additions and 569 deletions
@@ -58,111 +58,111 @@ namespace ScriptCanvasEditor
SaveAs(assetId, {}, onSaveCallback);
}
void AssetTracker::SaveAs(AZ::Data::AssetId assetId, const AZStd::string& path, Callbacks::OnSave onSaveCallback)
void AssetTracker::SaveAs(AZ::Data::AssetId /*assetId*/, const AZStd::string& /*path*/, Callbacks::OnSave /*onSaveCallback*/)
{
auto assetIter = m_assetsInUse.find(assetId);
if (assetIter != m_assetsInUse.end())
{
auto onSave = [this, assetId, onSaveCallback](bool saveSuccess, AZ::Data::AssetPtr asset, AZ::Data::AssetId previousFileAssetId)
{
AZ::Data::AssetId signalId = assetId;
AZ::Data::AssetId fileAssetId = asset->GetId();
// If there is a previous file Id is valid, it means this is a save-as operation and we need to remap the tracking.
if (previousFileAssetId.IsValid())
{
if (saveSuccess)
{
fileAssetId = m_assetsInUse[assetId]->GetFileAssetId();
m_remappedAsset[asset->GetId()] = fileAssetId;
// Erase the asset first so the smart pointer can deal with it's things.
m_assetsInUse.erase(fileAssetId);
// Then perform the insert once we know nothing will attempt to delete this while we are operating on it.
m_assetsInUse[fileAssetId] = m_assetsInUse[assetId];
m_assetsInUse.erase(assetId);
}
m_savingAssets.erase(assetId);
m_savingAssets.insert(fileAssetId);
signalId = fileAssetId;
if (m_queuedCloses.erase(assetId))
{
m_queuedCloses.insert(fileAssetId);
}
auto assetIter = m_assetsInUse.find(fileAssetId);
if (assetIter != m_assetsInUse.end())
{
AZStd::invoke(onSaveCallback, saveSuccess, m_assetsInUse[fileAssetId]->GetAsset().Get(), previousFileAssetId);
}
else
{
AZ_Error("ScriptCanvas", !saveSuccess, "Unable to find Memory Asset for Asset(%s)", fileAssetId.ToString<AZStd::string>().c_str());
AZStd::invoke(onSaveCallback, saveSuccess, asset, previousFileAssetId);
}
}
else
{
if (saveSuccess)
{
// This should be the case when we get a save as from a newly created file.
//
// If we find the 'memory' asset id in the assets in use. This means this was a new file that was saved.
// To maintain all of the look-up stuff, we need to treat this like a remapping stage.
auto assetInUseIter = m_assetsInUse.find(assetId);
if (assetInUseIter != m_assetsInUse.end())
{
fileAssetId = assetInUseIter->second->GetFileAssetId();
if (assetId != fileAssetId)
{
m_remappedAsset[assetId] = fileAssetId;
m_assetsInUse.erase(fileAssetId);
m_assetsInUse[fileAssetId] = AZStd::move(assetInUseIter->second);
m_assetsInUse.erase(assetId);
m_savingAssets.erase(assetId);
m_savingAssets.insert(fileAssetId);
if (m_queuedCloses.erase(assetId))
{
m_queuedCloses.insert(fileAssetId);
}
}
}
else
{
fileAssetId = CheckAssetId(fileAssetId);
}
signalId = fileAssetId;
}
if (onSaveCallback)
{
AZStd::invoke(onSaveCallback, saveSuccess, m_assetsInUse[signalId]->GetAsset().Get(), previousFileAssetId);
}
AssetTrackerNotificationBus::Broadcast(&AssetTrackerNotifications::OnAssetSaved, m_assetsInUse[signalId], saveSuccess);
}
SignalSaveComplete(signalId);
};
m_savingAssets.insert(assetId);
assetIter->second->SaveAs(path, onSave);
}
else
{
AZ_Assert(false, "Cannot SaveAs into an existing AssetId");
}
// auto assetIter = m_assetsInUse.find(assetId);
//
// if (assetIter != m_assetsInUse.end())
// {
// auto onSave = [this, assetId, onSaveCallback](bool saveSuccess, AZ::Data::AssetPtr asset, AZ::Data::AssetId previousFileAssetId)
// {
// AZ::Data::AssetId signalId = assetId;
// AZ::Data::AssetId fileAssetId = asset->GetId();
//
// // If there is a previous file Id is valid, it means this is a save-as operation and we need to remap the tracking.
// if (previousFileAssetId.IsValid())
// {
// if (saveSuccess)
// {
// fileAssetId = m_assetsInUse[assetId]->GetFileAssetId();
// m_remappedAsset[asset->GetId()] = fileAssetId;
//
// // Erase the asset first so the smart pointer can deal with it's things.
// m_assetsInUse.erase(fileAssetId);
//
// // Then perform the insert once we know nothing will attempt to delete this while we are operating on it.
// m_assetsInUse[fileAssetId] = m_assetsInUse[assetId];
// m_assetsInUse.erase(assetId);
// }
//
// m_savingAssets.erase(assetId);
// m_savingAssets.insert(fileAssetId);
//
// signalId = fileAssetId;
//
// if (m_queuedCloses.erase(assetId))
// {
// m_queuedCloses.insert(fileAssetId);
// }
//
// auto assetIter = m_assetsInUse.find(fileAssetId);
//
// if (assetIter != m_assetsInUse.end())
// {
// AZStd::invoke(onSaveCallback, saveSuccess, m_assetsInUse[fileAssetId]->GetAsset().Get(), previousFileAssetId);
// }
// else
// {
// AZ_Error("ScriptCanvas", !saveSuccess, "Unable to find Memory Asset for Asset(%s)", fileAssetId.ToString<AZStd::string>().c_str());
// AZStd::invoke(onSaveCallback, saveSuccess, asset, previousFileAssetId);
// }
// }
// else
// {
// if (saveSuccess)
// {
// // This should be the case when we get a save as from a newly created file.
// //
// // If we find the 'memory' asset id in the assets in use. This means this was a new file that was saved.
// // To maintain all of the look-up stuff, we need to treat this like a remapping stage.
// auto assetInUseIter = m_assetsInUse.find(assetId);
// if (assetInUseIter != m_assetsInUse.end())
// {
// fileAssetId = assetInUseIter->second->GetFileAssetId();
//
// if (assetId != fileAssetId)
// {
// m_remappedAsset[assetId] = fileAssetId;
//
// m_assetsInUse.erase(fileAssetId);
// m_assetsInUse[fileAssetId] = AZStd::move(assetInUseIter->second);
// m_assetsInUse.erase(assetId);
//
// m_savingAssets.erase(assetId);
// m_savingAssets.insert(fileAssetId);
//
// if (m_queuedCloses.erase(assetId))
// {
// m_queuedCloses.insert(fileAssetId);
// }
// }
// }
// else
// {
// fileAssetId = CheckAssetId(fileAssetId);
// }
//
// signalId = fileAssetId;
// }
//
// if (onSaveCallback)
// {
// AZStd::invoke(onSaveCallback, saveSuccess, m_assetsInUse[signalId]->GetAsset().Get(), previousFileAssetId);
// }
//
// AssetTrackerNotificationBus::Broadcast(&AssetTrackerNotifications::OnAssetSaved, m_assetsInUse[signalId], saveSuccess);
// }
//
// SignalSaveComplete(signalId);
// };
//
// m_savingAssets.insert(assetId);
// assetIter->second->SaveAs(path, onSave);
// }
// else
// {
// AZ_Assert(false, "Cannot SaveAs into an existing AssetId");
// }
}
bool AssetTracker::Load(AZ::Data::AssetId fileAssetId, AZ::Data::AssetType assetType, Callbacks::OnAssetReadyCallback onAssetReadyCallback)