UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDRigidActiveParticlesBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8
9namespace Chaos
10{
11 class FSingleParticlePhysicsProxy;
12
17 {
19 // Some particle types (clustered) only exist on the game thread, but we
20 // still need to pull data over via their proxies.
22 };
23
24
26 {
28
29 public:
31
33
34 CHAOS_API void ReadLock();
35 CHAOS_API void ReadUnlock();
36 CHAOS_API void WriteLock();
38
39 private:
40 const FPBDRigidDirtyParticlesBufferOut* GetSolverOutData() const
41 {
42 return SolverDataOut->GetConsumerBuffer();
43 }
44
48 CHAOS_API void BufferPhysicsResults(FPBDRigidsSolver* Solver);
49
53 void FlipDataOut()
54 {
55 SolverDataOut->FlipProducer();
56 }
57
58 Chaos::EMultiBufferMode BufferMode;
59 FRWLock ResourceOutLock;
60 bool bUseLock;
61
62 // Physics thread to game thread
64 };
65
67 {
68 public:
74
76 {
77 return Manager->GetSolverOutData();
78 }
79
84
85 private:
87 };
88}
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition PBDRigidActiveParticlesBuffer.h:67
const FPBDRigidDirtyParticlesBufferOut * GetSolverOutData() const
Definition PBDRigidActiveParticlesBuffer.h:75
FPBDRigidDirtyParticlesBufferAccessor(FPBDRigidDirtyParticlesBuffer *InManager)
Definition PBDRigidActiveParticlesBuffer.h:69
~FPBDRigidDirtyParticlesBufferAccessor()
Definition PBDRigidActiveParticlesBuffer.h:80
Definition PBDRigidActiveParticlesBuffer.h:26
CHAOS_API void CaptureSolverData(FPBDRigidsSolver *Solver)
Definition PBDRigidActiveParticlesBuffer.cpp:16
CHAOS_API void ReadUnlock()
Definition PBDRigidActiveParticlesBuffer.cpp:64
CHAOS_API void WriteUnlock()
Definition PBDRigidActiveParticlesBuffer.cpp:80
CHAOS_API void WriteLock()
Definition PBDRigidActiveParticlesBuffer.cpp:72
CHAOS_API void ReadLock()
Definition PBDRigidActiveParticlesBuffer.cpp:56
Definition PBDRigidsSolver.h:84
Definition Array.h:670
Definition UniquePtr.h:107
Definition CriticalSection.h:14
Definition SkeletalMeshComponent.h:307
EMultiBufferMode
Definition MultiBufferResource.h:9
Definition PBDRigidActiveParticlesBuffer.h:17
TSet< IPhysicsProxyBase * > PhysicsParticleProxies
Definition PBDRigidActiveParticlesBuffer.h:21
TArray< FSingleParticlePhysicsProxy * > DirtyGameThreadParticles
Definition PBDRigidActiveParticlesBuffer.h:18