Cogs.Core
SyncObjects.h
1#pragma once
2
3#include "GLFuncPointers.h"
4
5#include "../Common.h"
6#include "../ISyncObjects.h"
7
8namespace Cogs
9{
10 struct GLFence
11 {
12 GLsync sync = 0; // GL sync object.
13 };
14
16 {
17 FenceHandle createFence() override;
18 void releaseFence(FenceHandle fenceHandle) override;
19 void resetFence(FenceHandle fenceHandle) override;
20 bool isFenceSignalled(FenceHandle fenceHandle) override;
21 bool waitFence(FenceHandle fenceHandle, uint32_t timeout_ms) override;
22
23 void signal(FenceHandle fenceHandle);
24
26
27 };
28
29}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
FenceHandle createFence() override
Create a new fence object.
Definition: SyncObjects.cpp:9
void resetFence(FenceHandle fenceHandle) override
Explicitly set fence into unsignalled state unsignalled.
Definition: SyncObjects.cpp:26
bool isFenceSignalled(FenceHandle fenceHandle) override
Poll to see if a fence has been signalled.
Definition: SyncObjects.cpp:37
bool waitFence(FenceHandle fenceHandle, uint32_t timeout_ms) override
Try to let CPU wait for a fence to be signalled.
Definition: SyncObjects.cpp:47
void releaseFence(FenceHandle fenceHandle) override
Release an existing fence object.
Definition: SyncObjects.cpp:14
Handle template class used to provide opaque, non-converting handles.
Definition: Common.h:22
Provides sync object management.
Definition: ISyncObjects.h:14