UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ExternalObjectAndActorDependencyGatherer.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#if WITH_EDITOR
6
7
#include "
AssetRegistry/AssetDependencyGatherer.h
"
8
#include "
AssetRegistry/AssetData.h
"
9
#include "Containers/Array.h"
10
#include "
Containers/UnrealString.h
"
11
#include "
Engine/World.h
"
12
13
struct
FARFilter
;
14
struct
FARCompiledFilter
;
15
16
//
17
// This interface is used by systems who inject ContentBundle/ExternalDataLayers in worlds to inform
18
// FExternalObjectAndActorDependencyGatherer of where to locate those external actors and external objects
19
// and which CB/EDLs are associated with which world.
20
//
21
// This is necessary since worlds do not store information linking back to which EDL/CB are injected
22
// in them.
23
//
24
class
IExternalAssetPathsProvider
25
{
26
public
:
27
28
// These functions will be invoked while the AssetRegistry lock is held. All the restrictions
29
// and warnings pertaining to IAssetDependencyGathers apply here.
30
//
31
// Replicated here for clarity....
32
//
33
// WARNING: For high performance these callbacks are called inside the critical section of the AssetRegistry.
34
// Attempting to call public functions on the AssetRegistry will deadlock.
35
// To send queries about what assets exist, used the passed-in interface functions instead.
36
//
37
// Aside from that these should be made as simple as possible to execute quickly and without side-effects outside
38
// of the cache (if using a cache).
39
//
40
41
struct
FUpdateCacheContext
42
{
43
const
FAssetRegistryState
&
AssetRegistryState
;
44
const
class
FPathTree
& CachedPathTree;
45
const
TFunctionRef
<
FARCompiledFilter
(
const
FARFilter
&)>
CompileFilterFunc
;
46
};
47
48
virtual
void
UpdateCache(
const
FUpdateCacheContext
&
Context
) = 0;
49
virtual
TArray<FName>
GetPathsForPackage
(
FName
PackagePath) = 0;
50
};
51
52
class
FExternalObjectAndActorDependencyGatherer
:
public
IAssetDependencyGatherer
53
{
54
static
IExternalAssetPathsProvider
*
ExternalPathsProvider
;
55
56
public
:
57
FExternalObjectAndActorDependencyGatherer
() =
default
;
58
virtual
~FExternalObjectAndActorDependencyGatherer
() =
default
;
59
60
static
ENGINE_API
void
SetExternalAssetPathsProvider
(
IExternalAssetPathsProvider
*
InProvider
);
61
62
static
ENGINE_API
FARFilter
GetQueryFilter(
FName
PackageName,
TArray<FString>
*
OutQueryDirectories
=
nullptr
);
63
64
ENGINE_API
virtual
void
GatherDependencies
(
FGatherDependenciesContext
&
Context
)
const override
;
65
};
66
67
#endif
AssetData.h
AssetDependencyGatherer.h
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
UnrealString.h
EVulkanSyncPointType::Context
@ Context
World.h
FAssetRegistryState
Definition
AssetRegistryState.h:158
FName
Definition
NameTypes.h:617
FPathTree
Definition
PathTree.h:13
TArray
Definition
Array.h:670
TFunctionRef
Definition
AssetRegistryState.h:50
FARCompiledFilter
Definition
ARFilter.h:193
FARFilter
Definition
ARFilter.h:23
Engine
Source
Runtime
Engine
Classes
Engine
ExternalObjectAndActorDependencyGatherer.h
Generated by
1.9.8