Cogs.Core
SyncObjectsD3D12.h
1#pragma once
2
3#include "../ISyncObjects.h"
4#include "CommonD3D12.h"
5
6namespace Cogs
7{
8 struct GraphicsDeviceD3D11;
9
11 {
13 UINT64 value = 1;
14 HANDLE event = nullptr;
15 };
16
18 {
19 void setDevice(ResourcePointer<ID3D12Device>& device);
20
21 FenceHandle createFence() override;
22 void releaseFence(FenceHandle fenceHandle) override;
23 void resetFence(FenceHandle fenceHandle) override;
24 bool isFenceSignalled(FenceHandle fenceHandle) override;
25 bool waitFence(FenceHandle fenceHandle, uint32_t timeout_ms) override;
26
28
29 private:
31 };
32
33}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Handle template class used to provide opaque, non-converting handles.
Definition: Common.h:22
Provides sync object management.
Definition: ISyncObjects.h:14
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.
FenceHandle createFence() override
Create a new fence object.
bool waitFence(FenceHandle fenceHandle, uint32_t timeout_ms) override
Try to let CPU wait for a fence to be signalled.