UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ContentStreaming.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 ContentStreaming.h: Definitions of classes used for content streaming.
5=============================================================================*/
6
7#pragma once
8
10#include "CoreMinimal.h"
13#include "UObject/ObjectKey.h"
15
16class AActor;
17class FSoundSource;
18class UPrimitiveComponent;
19class FCanvas;
20class FViewport;
21class FSoundWaveData;
22class FSoundWaveProxy;
24class UTexture2D;
26struct FWaveInstance;
27class UAnimStreamable;
31
33
34/*-----------------------------------------------------------------------------
35 Stats.
36-----------------------------------------------------------------------------*/
37
38// Forward declarations
39class UPrimitiveComponent;
40class AActor;
41class UTexture2D;
42class UStaticMesh;
43class USkeletalMesh;
46class FSoundSource;
48struct FWaveInstance;
50
51namespace Nanite
52{
53 class FCoarseMeshStreamingManager;
54}
55
58
59/*-----------------------------------------------------------------------------
60 Base streaming classes.
61-----------------------------------------------------------------------------*/
62
70
104
110{
111public:
115
118
120
121 // gets a pointer to the compressed chunk.
122 ENGINE_API const uint8* GetData() const;
123
124 // Returns the num bytes pointed to by GetData().
125 ENGINE_API uint32 Num() const;
126
127 // Checks whether this points to a valid compressed chunk.
128 ENGINE_API bool IsValid() const;
129
130#if WITH_EDITOR
131 // If the soundwave has been recompressed, the compressed audio retained by this handle will not be up to date, and this will return true.
132 ENGINE_API bool IsStale() const;
133#endif
134
135private:
136 // This constructor should only be called by an implementation of IAudioStreamingManager.
138
139 const uint8* CachedData;
140 int32 CachedDataNumBytes;
141
142 FName CorrespondingWaveName;
143 FGuid CorrespondingWaveGuid;
144
145 // The index of this chunk in the sound wave's full set of chunks of compressed audio.
146 int32 ChunkIndex;
147
148#if WITH_EDITOR
151#endif
152
155};
156
161{
167
170 {}
171
173
176
177 ENGINE_API static void Shutdown();
178
180 ENGINE_API static bool HasShutdown();
181
188 ENGINE_API virtual void Tick(float DeltaTime, bool bProcessEverything = false);
189
196 virtual void UpdateResourceStreaming(float DeltaTime, bool bProcessEverything = false) = 0;
197
204 ENGINE_API virtual int32 StreamAllResources(float TimeLimit = 0.0f);
205
213 virtual int32 BlockTillAllRequestsFinished(float TimeLimit = 0.0f, bool bLogResults = false) = 0;
214
218 virtual void CancelForcedResources() = 0;
219
223 virtual void NotifyLevelChange() = 0;
224
231
243 ENGINE_API void AddViewInformation(const FVector& ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor = 1.0f, bool bOverrideLocation = false, float Duration = 0.0f, TWeakObjectPtr<AActor> InActorToBoost = NULL, TWeakObjectPtr<UWorld> InWorld = NULL);
244
254 ENGINE_API void AddViewLocation(const FVector& Location, float BoostFactor = 1.0f, bool bOverrideLocation = false, float Duration = 0.0f);
255
257 virtual void SetDisregardWorldResourcesForFrames(int32 NumFrames) = 0;
258
267 virtual bool Exec(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar)
268 {
269 return false;
270 }
271
273 virtual void AddLevel(class ULevel* Level) = 0;
274
276 virtual void RemoveLevel(class ULevel* Level) = 0;
277
281 virtual void NotifyLevelOffset(class ULevel* Level, const FVector& Offset) = 0;
282
285 {
286 }
287
289 virtual void NotifyPrimitiveDetached(const UPrimitiveComponent* Primitive)
290 {
291 }
292
294 virtual void NotifyPrimitiveUpdated(const UPrimitiveComponent* Primitive)
295 {
296 }
297
299 virtual void NotifyPrimitiveUpdated_Concurrent(const UPrimitiveComponent* Primitive)
300 {
301 }
302
305 {
306 return CurrentViewInfos.Num();
307 }
308
311 {
312 return CurrentViewInfos[ViewIndex];
313 }
314
317 {
318 return NumWantingResources;
319 }
320
328 {
330 }
331
334 {
335 }
336
337#if WITH_EDITOR
338 virtual void OnAudioStreamingParamsChanged() {};
339#endif
340
341protected:
342
349 void SetupViewInfos( float DeltaTime );
350
364 static void AddViewInfoToArray( TArray<FStreamingViewInfo> &ViewInfos, const FVector& ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor, bool bOverrideLocation, float Duration, TWeakObjectPtr<AActor> InActorToBoost, TWeakObjectPtr<UWorld> InWorld);
365
372 static void RemoveViewInfoFromArray( TArray<FStreamingViewInfo> &ViewInfos, const FVector& ViewOrigin );
373
392
395
398
401
404
407
410
418};
419
424{
431
433 virtual bool FastForceFullyResident(UStreamableRenderAsset* RenderAsset) = 0;
434
439 virtual void BoostTextures(AActor* Actor, float BoostFactor) = 0;
440
447
449 virtual void AddStreamingRenderAsset(UStreamableRenderAsset* RenderAsset) = 0;
450
453
455 virtual bool IsFullyStreamedIn(UStreamableRenderAsset* RenderAsset) = 0;
456
457 virtual int64 GetMemoryOverBudget() const = 0;
458
460 virtual int64 GetPoolSize() const = 0;
461
463 virtual int64 GetRequiredPoolSize() const = 0;
464
466 virtual int64 GetMaxEverRequired() const = 0;
467
469 virtual float GetCachedMips() const = 0;
470
472 virtual void ResetMaxEverRequired() = 0;
473
476
479
480 constexpr static auto ShouldChooseDefault = [](const UPrimitiveComponent*) { return true; };
481
483 virtual void GetAssetComponents(
484 const UStreamableRenderAsset* RenderAsset,
486 TFunction<bool(const UPrimitiveComponent*)> ShouldChoose = ShouldChooseDefault) = 0;
487
488 //BEGIN: APIs for backward compatibility
494 //END: APIs for backward compatibility
495
497 virtual void MarkMountedStateDirty(FIoFilenameHash FilenameHash) = 0;
498
500
502};
503
512
517{
520
523
532 constexpr static auto LoadCompletedDefault = [](EAudioChunkLoadResult) {};
534
544 virtual FAudioChunkHandle GetLoadedChunk(const FSoundWaveProxyPtr& SoundWave, uint32 ChunkIndex, bool bBlockForLoad = false, bool bForImmediatePlayback = false) const = 0;
545
553
557 virtual int32 RenderStatAudioStreaming(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation, const FRotator* ViewRotation) = 0;
558
562 virtual FString GenerateMemoryReport() = 0;
563
567 virtual void SetProfilingMode(bool bEnabled) = 0;
568
573 virtual void HandleStarvation(const FSoundWaveProxyPtr& SoundWave, const uint32 ChunkIndex, const uint32 InBytesProduced, const uint32 InBytesExpected ) {}
574
575protected:
578
580 static FAudioChunkHandle BuildChunkHandle(const uint8* InData, uint32 NumBytes, const FSoundWaveProxyPtr& InSoundWave, const FName& SoundWaveName, uint32 InChunkIndex, uint64 CacheLookupID);
581
586
591
597
602
603// DEPRECATED VIRTUAL INTERFACE
604private:
605 static void LogWarning();
606};
607
612{
613 virtual void UpdateResourceStreaming(float DeltaTime, bool bProcessEverything = false) override {}
614 virtual int32 BlockTillAllRequestsFinished(float TimeLimit = 0.0f, bool bLogResults = false) override { return 0; }
615 virtual void CancelForcedResources() override {}
616 virtual void NotifyLevelChange() override {}
618 virtual void AddLevel(class ULevel* Level) {}
619 virtual void RemoveLevel(class ULevel* Level) {}
620 virtual void NotifyLevelOffset(class ULevel* Level, const FVector& Offset) {}
621
625 virtual FAudioChunkHandle GetLoadedChunk(const FSoundWaveProxyPtr& SoundWave, uint32 ChunkIndex, bool bBlockForLoad = false, bool bForImmediatePlayback = false) const override { return FAudioChunkHandle(); }
626 virtual uint64 TrimMemory(uint64 NumBytesToFree) override { return 0; }
627 virtual int32 RenderStatAudioStreaming(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation, const FRotator* ViewRotation) override { return 0; }
628 virtual FString GenerateMemoryReport() override { return TEXT(""); }
629 virtual void SetProfilingMode(bool bEnabled) override {}
630
631protected:
632 virtual void AddReferenceToChunk(const FAudioChunkHandle& InHandle) override {}
633 virtual void RemoveReferenceToChunk(const FAudioChunkHandle& InHandle) override {}
634};
635
640{
642 virtual void AddStreamingAnim(UAnimStreamable* Anim) = 0;
643
645 virtual bool RemoveStreamingAnim(UAnimStreamable* Anim) = 0;
646
649
657 virtual const FCompressedAnimSequence* GetLoadedChunk(const UAnimStreamable* Anim, uint32 ChunkIndex, bool bRequestNextChunk) const = 0;
658};
659
665{
669
676 ENGINE_API virtual void Tick( float DeltaTime, bool bProcessEverything=false ) override;
677
684 virtual void UpdateResourceStreaming( float DeltaTime, bool bProcessEverything=false ) override;
685
692 virtual int32 StreamAllResources( float TimeLimit=0.0f ) override;
693
701 virtual int32 BlockTillAllRequestsFinished( float TimeLimit = 0.0f, bool bLogResults = false ) override;
702
704 virtual int32 GetNumWantingResources() const override;
705
712 virtual int32 GetNumWantingResourcesID() const override;
713
717 virtual void CancelForcedResources() override;
718
722 virtual void NotifyLevelChange() override;
723
727 ENGINE_API bool IsStreamingEnabled() const;
728
733
738
743
748
753
758
763
768
774 ENGINE_API void AddStreamingManager( IStreamingManager* StreamingManager );
775
781 ENGINE_API void RemoveStreamingManager( IStreamingManager* StreamingManager );
782
790
792 virtual void SetDisregardWorldResourcesForFrames( int32 NumFrames ) override;
793
798
804
813 virtual bool Exec( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar ) override;
814
816 virtual void AddLevel( class ULevel* Level ) override;
817
819 virtual void RemoveLevel( class ULevel* Level ) override;
820
821 /* Notifies manager that level primitives were shifted. */
822 virtual void NotifyLevelOffset( class ULevel* Level, const FVector& Offset ) override;
823
825 virtual void NotifyActorDestroyed( AActor* Actor ) override;
826
828 virtual void NotifyPrimitiveDetached( const UPrimitiveComponent* Primitive ) override;
829
831 virtual void NotifyPrimitiveUpdated( const UPrimitiveComponent* Primitive ) override;
832
834 virtual void NotifyPrimitiveUpdated_Concurrent( const UPrimitiveComponent* Primitive ) override;
835
837 void PropagateLightingScenarioChange() override;
838
839#if WITH_EDITOR
840 virtual void OnAudioStreamingParamsChanged() override;
841#endif
842
843protected:
844
845 virtual void AddOrRemoveTextureStreamingManagerIfNeeded(bool bIsInit=false);
846
851
854
857
860
863
866
869
872
873#if WITH_EDITOR
874 // Locks out any audio streaming manager call when we are re-initializing the audio streaming manager.
876#endif
877};
#define NULL
Definition oodle2base.h:134
uint32 FIoFilenameHash
Definition BulkData.h:68
void FlushResourceStreaming()
Definition ContentStreaming.cpp:68
ERemoveStreamingViews
Definition ContentStreaming.h:64
@ RemoveStreamingViews_All
Definition ContentStreaming.h:68
@ RemoveStreamingViews_Normal
Definition ContentStreaming.h:66
EAudioChunkLoadResult
Definition ContentStreaming.h:505
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define X(Name, Desc)
Definition FormatStringSan.h:47
EStreamableRenderAssetType
Definition StreamableRenderAsset.h:26
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition ContentStreaming.h:110
ENGINE_API FAudioChunkHandle()
Definition ContentStreaming.cpp:1422
ENGINE_API const uint8 * GetData() const
Definition ContentStreaming.cpp:1533
ENGINE_API ~FAudioChunkHandle()
Definition ContentStreaming.cpp:1525
ENGINE_API bool IsValid() const
Definition ContentStreaming.cpp:1543
ENGINE_API uint32 Num() const
Definition ContentStreaming.cpp:1538
ENGINE_API FAudioChunkHandle & operator=(const FAudioChunkHandle &Other)
Definition ContentStreaming.cpp:1498
Definition AudioStreamCacheMemoryHandle.h:21
Definition CanvasTypes.h:211
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition RenderAssetUpdate.h:38
Definition Audio.h:627
Definition SoundWave.h:1571
Definition SoundWave.h:1742
Definition UnrealClient.h:412
Definition AudioDecompress.h:31
Definition NaniteCoarseMeshStreamingManager.h:15
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition SharedPointer.h:1295
Definition AnimStreamable.h:91
Definition Level.h:423
Definition Object.h:95
Definition SkeletalMesh.h:440
Definition StaticMesh.h:593
Definition StreamableRenderAsset.h:37
Definition SparseVolumeTexture.h:452
Definition Texture2D.h:26
Definition World.h:918
Type
Definition TaskGraphInterfaces.h:57
@ AnyThread
Definition TaskGraphInterfaces.h:67
Definition SkinnedMeshComponent.h:50
Definition AudioStreamingCache.h:519
Definition AnimCompressionTypes.h:775
Definition ContentStreaming.h:612
virtual int32 RenderStatAudioStreaming(UWorld *World, FViewport *Viewport, FCanvas *Canvas, int32 X, int32 Y, const FVector *ViewLocation, const FRotator *ViewRotation) override
Definition ContentStreaming.h:627
virtual bool RequestChunk(const FSoundWaveProxyPtr &SoundWave, uint32 ChunkIndex, TFunction< void(EAudioChunkLoadResult)> OnLoadCompleted=LoadCompletedDefault, ENamedThreads::Type ThreadToCallOnLoadCompletedOn=ENamedThreads::AnyThread, bool bForImmediatePlayback=false) override
Definition ContentStreaming.h:624
virtual void RemoveMemoryCountedFeature(const FAudioStreamCacheMemoryHandle &Feature) override
Definition ContentStreaming.h:623
virtual void SetProfilingMode(bool bEnabled) override
Definition ContentStreaming.h:629
virtual void SetDisregardWorldResourcesForFrames(int32 NumFrames)
Definition ContentStreaming.h:617
virtual uint64 TrimMemory(uint64 NumBytesToFree) override
Definition ContentStreaming.h:626
virtual void RemoveLevel(class ULevel *Level)
Definition ContentStreaming.h:619
virtual void CancelForcedResources() override
Definition ContentStreaming.h:615
virtual FString GenerateMemoryReport() override
Definition ContentStreaming.h:628
virtual FAudioChunkHandle GetLoadedChunk(const FSoundWaveProxyPtr &SoundWave, uint32 ChunkIndex, bool bBlockForLoad=false, bool bForImmediatePlayback=false) const override
Definition ContentStreaming.h:625
virtual void NotifyLevelOffset(class ULevel *Level, const FVector &Offset)
Definition ContentStreaming.h:620
virtual void UpdateResourceStreaming(float DeltaTime, bool bProcessEverything=false) override
Definition ContentStreaming.h:613
virtual int32 BlockTillAllRequestsFinished(float TimeLimit=0.0f, bool bLogResults=false) override
Definition ContentStreaming.h:614
virtual void AddMemoryCountedFeature(const FAudioStreamCacheMemoryHandle &Feature) override
Definition ContentStreaming.h:622
virtual void NotifyLevelChange() override
Definition ContentStreaming.h:616
virtual void AddLevel(class ULevel *Level)
Definition ContentStreaming.h:618
virtual void AddReferenceToChunk(const FAudioChunkHandle &InHandle) override
Definition ContentStreaming.h:632
virtual void RemoveReferenceToChunk(const FAudioChunkHandle &InHandle) override
Definition ContentStreaming.h:633
Definition Guid.h:109
Definition StreamingManagerTexture.h:32
Definition ContentStreaming.h:665
FRenderAssetStreamingManager * RenderAssetStreamingManager
Definition ContentStreaming.h:859
ENGINE_API bool IsStreamingEnabled() const
Definition ContentStreaming.cpp:990
ENGINE_API void RemoveStreamingManager(IStreamingManager *StreamingManager)
Definition ContentStreaming.cpp:1086
ENGINE_API struct FVirtualTextureChunkStreamingManager & GetVirtualTextureStreamingManager() const
Definition ContentStreaming.cpp:1049
virtual int32 BlockTillAllRequestsFinished(float TimeLimit=0.0f, bool bLogResults=false) override
Definition ContentStreaming.cpp:915
ENGINE_API IRenderAssetStreamingManager & GetRenderAssetStreamingManager() const
Definition ContentStreaming.cpp:1027
virtual void AddOrRemoveTextureStreamingManagerIfNeeded(bool bIsInit=false)
Definition ContentStreaming.cpp:1258
virtual void UpdateResourceStreaming(float DeltaTime, bool bProcessEverything=false) override
Definition ContentStreaming.cpp:848
ENGINE_API bool IsTextureStreamingEnabled() const
Definition ContentStreaming.cpp:995
int32 DisableResourceStreamingCount
Definition ContentStreaming.h:853
ENGINE_API void AddStreamingManager(IStreamingManager *StreamingManager)
Definition ContentStreaming.cpp:1076
float LoadMapTimeLimit
Definition ContentStreaming.h:856
FVirtualTextureChunkStreamingManager * VirtualTextureStreamingManager
Definition ContentStreaming.h:868
Nanite::FCoarseMeshStreamingManager * NaniteCoarseMeshStreamingManager
Definition ContentStreaming.h:871
void PropagateLightingScenarioChange() override
Definition ContentStreaming.cpp:1217
void EnableResourceStreaming()
Definition ContentStreaming.cpp:1104
virtual void RemoveLevel(class ULevel *Level) override
Definition ContentStreaming.cpp:1149
ENGINE_API IAudioStreamingManager & GetAudioStreamingManager() const
Definition ContentStreaming.cpp:1033
virtual void AddLevel(class ULevel *Level) override
Definition ContentStreaming.cpp:1134
virtual void NotifyActorDestroyed(AActor *Actor) override
Definition ContentStreaming.cpp:1174
ENGINE_API ~FStreamingManagerCollection()
Definition ContentStreaming.cpp:782
ENGINE_API IAnimationStreamingManager & GetAnimationStreamingManager() const
Definition ContentStreaming.cpp:1043
ENGINE_API bool IsRenderAssetStreamingEnabled(EStreamableRenderAssetType FilteredAssetType) const
Definition ContentStreaming.cpp:1000
virtual int32 GetNumWantingResourcesID() const override
Definition ContentStreaming.cpp:950
ENGINE_API Nanite::FCoarseMeshStreamingManager * GetNaniteCoarseMeshStreamingManager() const
Definition ContentStreaming.cpp:1055
virtual void NotifyLevelChange() override
Definition ContentStreaming.cpp:980
virtual int32 StreamAllResources(float TimeLimit=0.0f) override
Definition ContentStreaming.cpp:884
void SetNumIterationsForNextFrame(int32 NumIterations)
Definition ContentStreaming.cpp:821
virtual void SetDisregardWorldResourcesForFrames(int32 NumFrames) override
Definition ContentStreaming.cpp:1061
virtual void NotifyPrimitiveUpdated_Concurrent(const UPrimitiveComponent *Primitive) override
Definition ContentStreaming.cpp:1207
IAnimationStreamingManager * AnimationStreamingManager
Definition ContentStreaming.h:865
int32 NumIterations
Definition ContentStreaming.h:850
virtual void NotifyLevelOffset(class ULevel *Level, const FVector &Offset) override
Definition ContentStreaming.cpp:1163
virtual void CancelForcedResources() override
Definition ContentStreaming.cpp:967
ENGINE_API FStreamingManagerCollection()
Definition ContentStreaming.cpp:740
virtual bool Exec(UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar) override
Definition ContentStreaming.cpp:1119
virtual void NotifyPrimitiveUpdated(const UPrimitiveComponent *Primitive) override
Definition ContentStreaming.cpp:1196
void DisableResourceStreaming()
Definition ContentStreaming.cpp:1094
TArray< IStreamingManager * > StreamingManagers
Definition ContentStreaming.h:848
virtual void NotifyPrimitiveDetached(const UPrimitiveComponent *Primitive) override
Definition ContentStreaming.cpp:1185
ENGINE_API IRenderAssetStreamingManager & GetTextureStreamingManager() const
Definition ContentStreaming.cpp:1022
IAudioStreamingManager * AudioStreamingManager
Definition ContentStreaming.h:862
virtual int32 GetNumWantingResources() const override
Definition ContentStreaming.cpp:930
Definition ContentStreaming.h:75
float BoostFactor
Definition ContentStreaming.h:94
FVector ViewOrigin
Definition ContentStreaming.h:88
float ScreenSize
Definition ContentStreaming.h:90
float Duration
Definition ContentStreaming.h:96
TWeakObjectPtr< AActor > ActorToBoost
Definition ContentStreaming.h:100
FStreamingViewInfo(const FVector &InViewOrigin, float InScreenSize, float InFOVScreenSize, float InBoostFactor, bool bInOverrideLocation, float InDuration, TWeakObjectPtr< AActor > InActorToBoost, TWeakObjectPtr< UWorld > InWorld)
Definition ContentStreaming.h:76
bool bOverrideLocation
Definition ContentStreaming.h:98
TWeakObjectPtr< UWorld > World
Definition ContentStreaming.h:102
float FOVScreenSize
Definition ContentStreaming.h:92
Definition VirtualTextureChunkManager.h:29
Definition Audio.h:180
Definition ContentStreaming.h:640
virtual void AddStreamingAnim(UAnimStreamable *Anim)=0
virtual bool RemoveStreamingAnim(UAnimStreamable *Anim)=0
virtual SIZE_T GetMemorySizeForAnim(const UAnimStreamable *Anim)=0
virtual const FCompressedAnimSequence * GetLoadedChunk(const UAnimStreamable *Anim, uint32 ChunkIndex, bool bRequestNextChunk) const =0
Definition ContentStreaming.h:517
virtual bool RequestChunk(const FSoundWaveProxyPtr &SoundWave, uint32 ChunkIndex, TFunction< void(EAudioChunkLoadResult)> OnLoadCompleted=LoadCompletedDefault, ENamedThreads::Type ThreadToCallOnLoadCompletedOn=ENamedThreads::AnyThread, bool bForImmediatePlayback=false)=0
virtual void HandleStarvation(const FSoundWaveProxyPtr &SoundWave, const uint32 ChunkIndex, const uint32 InBytesProduced, const uint32 InBytesExpected)
Definition ContentStreaming.h:573
virtual uint64 TrimMemory(uint64 NumBytesToFree)=0
friend FAudioStreamCacheMemoryHandle
Definition ContentStreaming.h:577
virtual FString GenerateMemoryReport()=0
virtual int32 RenderStatAudioStreaming(UWorld *World, FViewport *Viewport, FCanvas *Canvas, int32 X, int32 Y, const FVector *ViewLocation, const FRotator *ViewRotation)=0
static constexpr auto LoadCompletedDefault
Definition ContentStreaming.h:532
friend FAudioChunkHandle
Definition ContentStreaming.h:576
virtual void RemoveMemoryCountedFeature(const FAudioStreamCacheMemoryHandle &Feature)
Definition ContentStreaming.h:601
virtual void SetProfilingMode(bool bEnabled)=0
static FAudioChunkHandle BuildChunkHandle(const uint8 *InData, uint32 NumBytes, const FSoundWaveProxyPtr &InSoundWave, const FName &SoundWaveName, uint32 InChunkIndex, uint64 CacheLookupID)
Definition ContentStreaming.cpp:1565
virtual FAudioChunkHandle GetLoadedChunk(const FSoundWaveProxyPtr &SoundWave, uint32 ChunkIndex, bool bBlockForLoad=false, bool bForImmediatePlayback=false) const =0
virtual void RemoveReferenceToChunk(const FAudioChunkHandle &InHandle)=0
virtual void AddForceInlineSoundWave(const FSoundWaveProxyPtr &SoundWave)
Definition ContentStreaming.h:519
virtual void RemoveForceInlineSoundWave(const FSoundWaveProxyPtr &SoundWave)
Definition ContentStreaming.h:522
virtual void AddReferenceToChunk(const FAudioChunkHandle &InHandle)=0
virtual void AddMemoryCountedFeature(const FAudioStreamCacheMemoryHandle &Feature)
Definition ContentStreaming.h:596
Definition ContentStreaming.h:424
ENGINE_API bool StreamOutTextureData(int64 RequiredMemorySize)
Definition ContentStreaming.cpp:716
virtual bool FastForceFullyResident(UStreamableRenderAsset *RenderAsset)=0
ENGINE_API void RemoveStreamingTexture(UTexture2D *Texture)
Definition ContentStreaming.cpp:726
virtual void GetAssetComponents(const UStreamableRenderAsset *RenderAsset, TArray< const UPrimitiveComponent * > &OutComps, TFunction< bool(const UPrimitiveComponent *)> ShouldChoose=ShouldChooseDefault)=0
virtual void RemoveStreamingRenderAsset(UStreamableRenderAsset *RenderAsset)=0
virtual void PauseRenderAssetStreaming(bool bInShouldPause)=0
virtual bool StreamOutRenderAssetData(int64 RequiredMemorySize)=0
virtual int64 GetMaxEverRequired() const =0
virtual int64 GetPoolSize() const =0
virtual float GetCachedMips() const =0
virtual void MarkMountedStateDirty(FIoFilenameHash FilenameHash)=0
virtual void OnRenderAssetUpdateAbandoned(UStreamableRenderAsset *OwningRenderAsset, TRefCountPtr< FRenderAssetUpdate > &RenderAssetUpdate)=0
ENGINE_API void AddStreamingTexture(UTexture2D *Texture)
Definition ContentStreaming.cpp:721
virtual int64 GetMemoryOverBudget() const =0
virtual void AddRenderedTextureStats(TMap< FString, FRenderedTextureStats > &InOutRenderedTextureAssets)=0
ENGINE_API void PauseTextureStreaming(bool bInShouldPause)
Definition ContentStreaming.cpp:731
virtual int64 GetRequiredPoolSize() const =0
virtual bool IsFullyStreamedIn(UStreamableRenderAsset *RenderAsset)=0
static constexpr auto ShouldChooseDefault
Definition ContentStreaming.h:480
ENGINE_API void UpdateIndividualTexture(UTexture2D *Texture)
Definition ContentStreaming.cpp:711
virtual void BoostTextures(AActor *Actor, float BoostFactor)=0
virtual void ResetMaxEverRequired()=0
virtual void AddStreamingRenderAsset(UStreamableRenderAsset *RenderAsset)=0
virtual void UpdateIndividualRenderAsset(UStreamableRenderAsset *RenderAsset)=0
virtual void GetObjectReferenceBounds(const UObject *RefObject, TArray< FBox > &AssetBoxes)=0
Definition ContentStreaming.h:375
float BoostFactor
Definition ContentStreaming.h:386
FSecondaryLocation(const FVector &InLocation, float InBoostFactor, bool bInOverrideLocation, float InDuration)
Definition ContentStreaming.h:376
float Duration
Definition ContentStreaming.h:388
FVector Location
Definition ContentStreaming.h:384
bool bOverrideLocation
Definition ContentStreaming.h:390
Definition ContentStreaming.h:161
static TArray< FSecondaryLocation > SecondaryLocations
Definition ContentStreaming.h:403
virtual void UpdateResourceStreaming(float DeltaTime, bool bProcessEverything=false)=0
const FStreamingViewInfo & GetViewInformation(int32 ViewIndex) const
Definition ContentStreaming.h:310
void SetupViewInfos(float DeltaTime)
Definition ContentStreaming.cpp:442
static void AddViewInfoToArray(TArray< FStreamingViewInfo > &ViewInfos, const FVector &ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor, bool bOverrideLocation, float Duration, TWeakObjectPtr< AActor > InActorToBoost, TWeakObjectPtr< UWorld > InWorld)
Definition ContentStreaming.cpp:388
ENGINE_API void AddViewLocation(const FVector &Location, float BoostFactor=1.0f, bool bOverrideLocation=false, float Duration=0.0f)
Definition ContentStreaming.cpp:654
virtual bool Exec(UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
Definition ContentStreaming.h:267
virtual void NotifyLevelOffset(class ULevel *Level, const FVector &Offset)=0
int32 NumWantingResources
Definition ContentStreaming.h:409
virtual void NotifyPrimitiveUpdated(const UPrimitiveComponent *Primitive)
Definition ContentStreaming.h:294
virtual void NotifyLevelChange()=0
static TArray< FStreamingViewInfo > PendingViewInfos
Definition ContentStreaming.h:397
virtual void NotifyActorDestroyed(AActor *Actor)
Definition ContentStreaming.h:284
virtual void PropagateLightingScenarioChange()
Definition ContentStreaming.h:333
virtual void NotifyPrimitiveUpdated_Concurrent(const UPrimitiveComponent *Primitive)
Definition ContentStreaming.h:299
static ENGINE_API bool HasShutdown()
Definition ContentStreaming.cpp:371
static ENGINE_API struct FStreamingManagerCollection & Get()
Definition ContentStreaming.cpp:332
static bool bPendingRemoveViews
Definition ContentStreaming.h:406
IStreamingManager()
Definition ContentStreaming.h:162
virtual void NotifyPrimitiveDetached(const UPrimitiveComponent *Primitive)
Definition ContentStreaming.h:289
static TArray< FStreamingViewInfo > LastingViewInfos
Definition ContentStreaming.h:400
virtual void AddLevel(class ULevel *Level)=0
virtual void CancelForcedResources()=0
static void RemoveViewInfoFromArray(TArray< FStreamingViewInfo > &ViewInfos, const FVector &ViewOrigin)
Definition ContentStreaming.cpp:420
virtual int32 GetNumWantingResourcesID() const
Definition ContentStreaming.h:327
virtual void RemoveLevel(class ULevel *Level)=0
int32 NumWantingResourcesCounter
Definition ContentStreaming.h:417
static ENGINE_API TArray< FStreamingViewInfo > CurrentViewInfos
Definition ContentStreaming.h:394
int32 GetNumViews() const
Definition ContentStreaming.h:304
static ENGINE_API struct FStreamingManagerCollection * Get_Concurrent()
Definition ContentStreaming.cpp:350
virtual void SetDisregardWorldResourcesForFrames(int32 NumFrames)=0
virtual int32 BlockTillAllRequestsFinished(float TimeLimit=0.0f, bool bLogResults=false)=0
virtual int32 GetNumWantingResources() const
Definition ContentStreaming.h:316
virtual ENGINE_API int32 StreamAllResources(float TimeLimit=0.0f)
Definition ContentStreaming.cpp:702
virtual ~IStreamingManager()
Definition ContentStreaming.h:169
ENGINE_API void AddViewInformation(const FVector &ViewOrigin, float ScreenSize, float FOVScreenSize, float BoostFactor=1.0f, bool bOverrideLocation=false, float Duration=0.0f, TWeakObjectPtr< AActor > InActorToBoost=NULL, TWeakObjectPtr< UWorld > InWorld=NULL)
Definition ContentStreaming.cpp:606
static ENGINE_API void Shutdown()
Definition ContentStreaming.cpp:362
void RemoveStreamingViews(ERemoveStreamingViews RemovalType)
Definition ContentStreaming.cpp:676
Definition WeakObjectPtrTemplates.h:25