UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StateStreamManagerImpl.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "StateStream.h"
7#include "Tasks/Task.h"
8
9#define UE_API STATESTREAM_API
10
12// StateStreamManager implementation.
13// This type should only be known render side.
14
16{
17public:
18 // IStateStreamManager interface
19 UE_API virtual void Game_BeginTick() override;
20 UE_API virtual void Game_EndTick(double AbsoluteTime) override;
21 UE_API virtual void Game_Exit() override;
22 UE_API virtual bool Game_IsInTick() override;
23 UE_API virtual void* Game_GetStreamPointer(uint32 Id) override;
24
25 // Register new state streams into manager.
26 // TakeOwnership true means that manager will delete stream when shutting down
28
29 // Register dependency between statestreams. FromId will depend on ToId
32
33 // Called at the beginning of a render frame. AbsolutTime is the amount of time the render frame consumes
34 UE_API void Render_Update(double AbsoluteTime);
35
36 // Called before Render thread exits
37 UE_API void Render_Exit();
38
39 // Garbage collect
40 UE_API void Render_GarbageCollect(bool AsTask = false);
41
42 // Get state stream from id
44
45 // Debug
47
49
50private:
51 struct StateStreamRec
52 {
53 IStateStream* Stream;
54 bool Owned;
55 };
56 TArray<StateStreamRec> StateStreams;
57 TArray<IStateStream*> StateStreamsLookup;
58 bool bIsInTick = false;
59 bool bGameExited = false;
60 bool bRenderExited = false;
61
62 UE::Tasks::FTask GarbageCollectTask;
63};
64
66
67#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition StateStreamManagerImpl.h:9
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition StateStreamManagerImpl.h:16
UE_API void Render_Update(double AbsoluteTime)
Definition StateStreamManagerImpl.cpp:75
UE_API void Render_Exit()
Definition StateStreamManagerImpl.cpp:88
virtual UE_API bool Game_IsInTick() override
Definition StateStreamManagerImpl.cpp:40
UE_API void Render_GarbageCollect(bool AsTask=false)
Definition StateStreamManagerImpl.cpp:99
virtual UE_API void Game_Exit() override
Definition StateStreamManagerImpl.cpp:30
UE_API void Render_RegisterDependency(uint32 FromId, uint32 ToId)
Definition StateStreamManagerImpl.cpp:65
virtual UE_API void Game_DebugRender(IStateStreamDebugRenderer &Renderer)
Definition StateStreamManagerImpl.cpp:126
virtual UE_API void * Game_GetStreamPointer(uint32 Id) override
Definition StateStreamManagerImpl.cpp:45
UE_API ~FStateStreamManagerImpl()
Definition StateStreamManagerImpl.cpp:134
UE_API void Render_Register(IStateStream &Stream, bool TakeOwnership)
Definition StateStreamManagerImpl.cpp:51
virtual UE_API void Game_EndTick(double AbsoluteTime) override
Definition StateStreamManagerImpl.cpp:20
UE_API IStateStream * Render_GetStream(uint32 Id)
Definition StateStreamManagerImpl.cpp:120
virtual UE_API void Game_BeginTick() override
Definition StateStreamManagerImpl.cpp:9
Definition StateStreamDebugRenderer.h:10
Definition StateStreamManager.h:13
Definition StateStream.h:14
Definition Renderer.Build.cs:6
Definition Array.h:670