Cogs.Core
Public Member Functions | Public Attributes | Private Attributes | List of all members
Cogs::SyncObjectsD3D12 Struct Reference
Inheritance diagram for Cogs::SyncObjectsD3D12:
Cogs::ISyncObjects

Public Member Functions

void setDevice (ResourcePointer< ID3D12Device > &device)
 
FenceHandle createFence () override
 Create a new fence object.
 
void releaseFence (FenceHandle fenceHandle) override
 Release an existing fence object.
 
void resetFence (FenceHandle fenceHandle) override
 Explicitly set fence into unsignalled state unsignalled.
 
bool isFenceSignalled (FenceHandle fenceHandle) override
 Poll to see if a fence has been signalled.
 
bool waitFence (FenceHandle fenceHandle, uint32_t timeout_ms) override
 Try to let CPU wait for a fence to be signalled.
 
virtual FenceHandle createFence ()=0
 Create a new fence object.
 
virtual void releaseFence (FenceHandle fenceHandle)=0
 Release an existing fence object.
 
virtual void resetFence (FenceHandle fenceHandle)=0
 Explicitly set fence into unsignalled state unsignalled.
 
virtual bool isFenceSignalled (FenceHandle fenceHandle)=0
 Poll to see if a fence has been signalled.
 
virtual bool waitFence (FenceHandle fenceHandle, uint32_t timeout_ms)=0
 Try to let CPU wait for a fence to be signalled.
 

Public Attributes

ResourceMap< FenceHandle, FenceD3D12fences
 

Private Attributes

ResourcePointer< ID3D12Device > device
 

Detailed Description

Definition at line 17 of file SyncObjectsD3D12.h.

Member Function Documentation

◆ createFence()

Cogs::FenceHandle Cogs::SyncObjectsD3D12::createFence ( )
overridevirtual

Create a new fence object.

Implements Cogs::ISyncObjects.

Definition at line 15 of file SyncObjectsD3D12.cpp.

References Cogs::Handle_t< Type, Convertible >::NoHandle.

◆ isFenceSignalled()

bool Cogs::SyncObjectsD3D12::isFenceSignalled ( FenceHandle  fenceHandle)
overridevirtual

Poll to see if a fence has been signalled.

Parameters
fenceHandlevalid fence handle.
Returns
True if fence is signalled.

Implements Cogs::ISyncObjects.

Definition at line 43 of file SyncObjectsD3D12.cpp.

◆ releaseFence()

void Cogs::SyncObjectsD3D12::releaseFence ( FenceHandle  fenceHandle)
overridevirtual

Release an existing fence object.

Implements Cogs::ISyncObjects.

Definition at line 24 of file SyncObjectsD3D12.cpp.

◆ resetFence()

void Cogs::SyncObjectsD3D12::resetFence ( FenceHandle  fenceHandle)
overridevirtual

Explicitly set fence into unsignalled state unsignalled.

Parameters
fenceHandlevalid fence handle.

Implements Cogs::ISyncObjects.

Definition at line 35 of file SyncObjectsD3D12.cpp.

◆ setDevice()

void Cogs::SyncObjectsD3D12::setDevice ( ResourcePointer< ID3D12Device > &  device)

Definition at line 10 of file SyncObjectsD3D12.cpp.

◆ waitFence()

bool Cogs::SyncObjectsD3D12::waitFence ( FenceHandle  fenceHandle,
uint32_t  timeout_ms 
)
overridevirtual

Try to let CPU wait for a fence to be signalled.

Note
The function might wait less than the specified timeout, even though the fence was not signalled.

On backends that prohibit blocking, this function will poll the fence status.

Parameters
fenceHandlevalid fence handle.
timeout_msMaximum amount of time to wait.
Returns
True if fence is signalled.

Implements Cogs::ISyncObjects.

Definition at line 54 of file SyncObjectsD3D12.cpp.

Member Data Documentation

◆ device

ResourcePointer<ID3D12Device> Cogs::SyncObjectsD3D12::device
private

Definition at line 30 of file SyncObjectsD3D12.h.

◆ fences

ResourceMap<FenceHandle, FenceD3D12> Cogs::SyncObjectsD3D12::fences

Definition at line 27 of file SyncObjectsD3D12.h.


The documentation for this struct was generated from the following files: