Navigation
API > API/Runtime > API/Runtime/Chaos
Triple buffer based on a single atomic variable, that guards against the consumer thread using old values.
Not thread-safe, requires external locks.
| Name | FGuardedTripleBuffer |
| Type | class |
| Header File | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/Framework/MultiBufferResource.h |
| Include Path | #include "Chaos/Framework/MultiBufferResource.h" |
Syntax
template<typename ResourceType>
class FGuardedTripleBuffer : public Chaos::IBufferResource< ResourceType >
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FGuardedTripleBuffer() |
This class implements a circular buffer access pattern, such that during normal serial operation each buffer will be used. | Chaos/Framework/MultiBufferResource.h |
Structs
| Name | Remarks |
|---|---|
| ResourceTypeWrapper |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Buffers | ResourceTypeWrapper | Chaos/Framework/MultiBufferResource.h | ||
| ConsumerThreadBuffer | ResourceTypeWrapper * | Chaos/Framework/MultiBufferResource.h | ||
| Interchange | TAtomic< ResourceTypeWrapper * > | Chaos/Framework/MultiBufferResource.h | ||
| ProducerThreadBuffer | ResourceTypeWrapper * | Chaos/Framework/MultiBufferResource.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const ResourceType * PeekConsumerBuffer() |
Get access to the currently held consumer buffer, ignoring whether it's already been consumed. | Chaos/Framework/MultiBufferResource.h |
Overridden from IBufferResource
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ResourceType * AccessProducerBuffer () |
Get the current producer buffer for writing. | Chaos/Framework/MultiBufferResource.h | |
virtual void FlipProducer () |
Make the current producer buffer available to the consumer thread. | Chaos/Framework/MultiBufferResource.h | |
virtual EMultiBufferMode GetBufferMode() |
Chaos/Framework/MultiBufferResource.h | ||
virtual const ResourceType * GetConsumerBuffer () |
Get an updated buffer for the consuming thread to read from. | Chaos/Framework/MultiBufferResource.h | |
virtual ResourceType * GetConsumerBufferMutable() |
NOTE: these changes may not make it to producer side, it is meant for resource management not to pass information back. | Chaos/Framework/MultiBufferResource.h | |
virtual const ResourceType * GetProducerBuffer () |
Get the current producer buffer. | Chaos/Framework/MultiBufferResource.h |