You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Before: 3648 unity files Total CPU Time: 47886.140625 s Total time in Parallel executor: 498.81 seconds After: 3548 unity files Total CPU Time: 46643.828125 s Total time in Parallel executor: 486.06 seconds #jira #preflight [CL 22173263 by marc audy in ue5-main branch]
67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "AnimationDataSource.h"
|
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(AnimationDataSource)
|
|
|
|
bool UAnimationDataSourceRegistry::RegisterDataSource(const FName& InName, UObject* InDataSource)
|
|
{
|
|
ClearInvalidDataSource();
|
|
|
|
if (DataSources.Contains(InName))
|
|
{
|
|
return false;
|
|
}
|
|
DataSources.Add(InName, InDataSource);
|
|
return true;
|
|
}
|
|
|
|
bool UAnimationDataSourceRegistry::UnregisterDataSource(const FName& InName)
|
|
{
|
|
ClearInvalidDataSource();
|
|
return DataSources.Remove(InName) > 0;
|
|
}
|
|
|
|
bool UAnimationDataSourceRegistry::ContainsSource(const FName& InName) const
|
|
{
|
|
return DataSources.Contains(InName);
|
|
}
|
|
|
|
UObject* UAnimationDataSourceRegistry::RequestSource(const FName& InName, UClass* InExpectedClass) const
|
|
{
|
|
TWeakObjectPtr<UObject> const* DataSource = DataSources.Find(InName);
|
|
if (DataSource == nullptr)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
UObject* DataSourcePtr = DataSource->Get();
|
|
if (!DataSourcePtr)
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!DataSourcePtr->IsA(InExpectedClass))
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
return DataSourcePtr;
|
|
}
|
|
|
|
void UAnimationDataSourceRegistry::ClearInvalidDataSource()
|
|
{
|
|
TArray<FName> InvalidNames;
|
|
for (auto Iter = DataSources.CreateIterator(); Iter; ++Iter)
|
|
{
|
|
if (!Iter.Value().IsValid())
|
|
{
|
|
InvalidNames.Add(Iter.Key());
|
|
}
|
|
}
|
|
|
|
for (const FName& NameToRemove : InvalidNames)
|
|
{
|
|
DataSources.Remove(NameToRemove);
|
|
}
|
|
}
|