14 template<
typename DataType>
23 DataSyncCounts[0] = 0;
24 DataSyncCounts[1] = 0;
32 BufferIndex.Store(GetGameDataIndex());
40 return Data[GetGameDataIndex()];
48 return Data[GetPhysicsDataIndex()];
56 return DataSyncCounts[GetGameDataIndex()];
64 return DataSyncCounts[GetPhysicsDataIndex()];
73 return Data[GetGameDataIndex()];
82 int32 DataIndex = GetPhysicsDataIndex();
83 DataSyncCounts[DataIndex] = ++SyncCounter;
84 return Data[DataIndex];
100 int32 GetPhysicsDataIndex()
const
102 return BufferIndex.Load();
105 int32 GetGameDataIndex()
const
107 return GetPhysicsDataIndex() == 1 ? 0 : 1;
131 template<
typename ResourceType>
149 ResourceLock.WriteLock();
151 ReadIndex = (ReadIndex + 1) % 2;
153 ResourceLock.WriteUnlock();
159 ResourceLock.ReadLock();
166 ResourceLock.ReadUnlock();
172 return Buffer[(ReadIndex + 1) % 2];
177 return Buffer[(ReadIndex + 1) % 2];
#define checkSlow(expr)
Definition AssertionMacros.h:332
EInPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition BufferedData.h:16
DataType & Get(int32 InIndex)
Definition BufferedData.h:92
TBufferedData()
Definition BufferedData.h:19
int32 GetPhysicsDataSyncCount() const
Definition BufferedData.h:62
DataType & GetGameDataForWrite()
Definition BufferedData.h:71
void Flip()
Definition BufferedData.h:30
const DataType & GetPhysicsDataForRead() const
Definition BufferedData.h:46
int32 GetGameDataSyncCount() const
Definition BufferedData.h:54
DataType & GetPhysicsDataForWrite()
Definition BufferedData.h:80
const DataType & GetGameDataForRead() const
Definition BufferedData.h:38
Definition BufferedData.h:133
void ReleaseRead() const
Definition BufferedData.h:164
const ResourceType & GetReadable() const
Definition BufferedData.h:175
void Swap()
Definition BufferedData.h:147
const ResourceType & GetRead() const
Definition BufferedData.h:157
TChaosReadWriteResource(EInPlace, ArgTypes &&... Args)
Definition BufferedData.h:137
ResourceType & GetWritable()
Definition BufferedData.h:170
Definition SkeletalMeshComponent.h:307