5#include "StateStreamHandle.generated.h"
7#define UE_API STATESTREAM_API
26 UE_API void MakeInternal();
31 UE_API void* Render_GetUserData()
const;
79#define DECLARE_STATESTREAM_HANDLE(Type) \
80 F##Type##Handle() = default; \
81 F##Type##Handle(const F##Type##Handle& Other) : FStateStreamHandle(Other) {} \
82 F##Type##Handle(F##Type##Handle&& Other) : FStateStreamHandle(std::move(Other)) {} \
83 F##Type##Handle& operator=(F##Type##Handle&& Other) { FStateStreamHandle::operator=(std::move(Other)); return *this; } \
84 F##Type##Handle& operator=(const F##Type##Handle& Other) { FStateStreamHandle::operator=(Other); return *this; } \
85 ~F##Type##Handle() = default; \
86 void Update(const F##Type##DynamicState& Ds, double TimeFactor = 0) { if (Owner) Owner->Game_Update(Id, &Ds, TimeFactor, 0); } \
87 F##Type##DynamicState& Edit(double TimeFactor = 0) { return *static_cast<F##Type##DynamicState*>(Owner->Game_Edit(Id, TimeFactor, 0)); } \
88 F##Type##Handle(IStateStreamHandleOwner& O, uint32 I) : FStateStreamHandle(O, I) {} \
89 F##Type##Handle(FStateStreamCopyContext& C, const F##Type##Handle& O) : FStateStreamHandle(C, O) {} \
90 void Apply(FStateStreamCopyContext& Context, const FStateStreamHandle& Other) { FStateStreamHandle::Apply(Context, Other); } \
91 bool operator==(const F##Type##Handle& Other) const { return FStateStreamHandle::operator==(Other); } \
92 static inline constexpr const TCHAR* DebugName = TEXT(#Type); \
93 using FStateStreamHandle::Apply; \
94 friend F##Type##DynamicState; \
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define UE_API
Definition StateStreamHandle.h:7
Definition StateStreamHandle.h:57
virtual void * Game_Edit(uint32 HandleId, double TimeFactor, uint64 UserData)=0
virtual void * Render_GetUserData(uint32 HandleId)=0
virtual void Game_AddRef(uint32 HandleId)=0
virtual void Game_Update(uint32 HandleId, const void *DynamicState, double TimeFactor, uint64 UserData)=0
virtual void Game_Release(uint32 HandleId)=0
Definition StateStreamHandle.h:71
uint32 IsInternal
Definition StateStreamHandle.h:72
Definition StateStreamHandle.h:25
bool IsValid() const
Definition StateStreamHandle.h:28
FStateStreamHandle()=default
uint32 GetId() const
Definition StateStreamHandle.h:29