Inherits AZ::Data::AssetLoadBus::MultiHandler.
Public Types | |
using | DependencyList = AZStd::unordered_map< AZ::Data::AssetId, AZ::Data::Asset< AssetData > > |
Public Member Functions | |
AZ_CLASS_ALLOCATOR (AssetContainer, SystemAllocator) | |
AssetContainer (Asset< AssetData > asset, const AssetLoadParameters &loadParams, bool isReload=false) | |
bool | IsReady () const |
bool | IsLoading () const |
bool | IsValid () const |
Asset< AssetData > | GetRootAsset () |
AssetId | GetContainerAssetId () |
void | ClearRootAsset () |
operator bool () const | |
const DependencyList & | GetDependencies () const |
int | GetNumWaitingDependencies () const |
int | GetInvalidDependencies () const |
void | ListWaitingAssets () const |
void | ListWaitingPreloads (const AZ::Data::AssetId &assetId) const |
const AZStd::unordered_set< AZ::Data::AssetId > & | GetUnloadedDependencies () const |
void | OnAssetDataLoaded (AZ::Data::Asset< AZ::Data::AssetData > asset) override |
void | OnAssetReady (Asset< AssetData > asset) override |
void | OnAssetReloaded (Asset< AssetData > asset) override |
void | OnAssetError (Asset< AssetData > asset) override |
void | OnAssetReloadError (Asset< AssetData > asset) override |
Protected Member Functions | |
virtual AZStd::vector< AZStd::pair< AssetInfo, Asset< AssetData > > > | CreateAndQueueDependentAssets (const AZStd::vector< AssetInfo > &dependencyInfoList, const AssetLoadParameters &loadParamsCopyWithNoLoadingFilter) |
void | AddWaitingAsset (const AZ::Data::AssetId &waitingAsset) |
void | AddWaitingAssets (const AZStd::vector< AZ::Data::AssetId > &waitingAssets) |
void | RemoveWaitingAsset (const AZ::Data::AssetId &waitingAsset) |
void | ClearWaitingAssets () |
void | CheckReady () |
void | AddDependency (const Asset< AssetData > &newDependency) |
void | AddDependency (Asset< AssetData > &&addDependency) |
void | AddDependentAssets (Asset< AssetData > rootAsset, const AssetLoadParameters &loadParams) |
void | SetupPreloadLists (PreloadAssetListType &&preloadList, const AZ::Data::AssetId &rootAssetId) |
bool | HasPreloads (const AZ::Data::AssetId &assetId) const |
void | RemoveFromWaitingPreloads (const AZ::Data::AssetId &waitingId, const AZ::Data::AssetId &preloadAssetId) |
void | RemoveFromAllWaitingPreloads (const AZ::Data::AssetId &assetId) |
Asset< AssetData > | GetAssetData (const AZ::Data::AssetId &assetId) const |
void | HandleReadyAsset (AZ::Data::Asset< AZ::Data::AssetData > asset) |
Protected Attributes | |
AssetInternal::WeakAsset< AssetData > | m_rootAsset |
AssetId | m_containerAssetId |
bool | m_isReload { false } |
AZStd::recursive_mutex | m_dependencyMutex |
DependencyList | m_dependencies |
AZStd::recursive_mutex | m_readyMutex |
AZStd::set< AssetId > | m_waitingAssets |
AZStd::atomic_int | m_waitingCount {0} |
AZStd::atomic_int | m_invalidDependencies { 0 } |
AZStd::unordered_set< AZ::Data::AssetId > | m_unloadedDependencies |
AZStd::atomic_bool | m_initComplete { false } |
AZStd::atomic_bool | m_finalNotificationSent {false} |
AZStd::recursive_mutex | m_preloadMutex |
PreloadAssetListType | m_preloadList |
PreloadAssetListType | m_preloadWaitList |
AssetId AZ::Data::AssetContainer::GetContainerAssetId | ( | ) |
Get a reference to the asset id for the asset the container was originally created for. Even if the root asset has been cleared, this will still contain the originally-requested id.
Get a reference to the current root asset. This will either be the asset the container was originally created for, or invalid if the asset load has been canceled.