CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
GPUFence.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
10#include "Common.hpp"
11#include "Forward.hpp"
12
15
18
19#include <cstdint>
20
21namespace CeresEngine {
22
26 template<typename Processor> static constexpr void reflect(Processor&& RTTI) {}
27 };
28
29 class CE_SCRIPT_EXPORT() GPUFence : public TDeviceObject<GPUFenceDescriptor> {
30 public:
32 using TDeviceObject::TDeviceObject;
33
35 GPUFence(const GPUFence&) = delete;
36 GPUFence& operator=(const GPUFence&) = delete;
37
39 GPUFence(GPUFence&&) = delete;
41
42 public:
45 virtual void reset() = 0;
46
52 [[nodiscard]] CE_SCRIPT_EXPORT()
53 virtual bool wait(UInt64 timeout) = 0;
54 };
55
56} // namespace CeresEngine
57
#define CE_REFLECT_HASH(T)
Definition Hash.hpp:89
#define CE_SCRIPT_EXPORT(...)
The CE_SCRIPT_EXPORT macro marks a class or method as exportable and available in scripting environme...
Definition Macros.hpp:247
Definition GPUFence.hpp:29
GPUFence & operator=(GPUFence &&)=delete
GPUFence & operator=(const GPUFence &)=delete
GPUFence(GPUFence &&)=delete
Deleted move constructor.
GPUFence(const GPUFence &)=delete
Deleted copy constructor.
Definition Common.hpp:62
Definition Application.hpp:19
std::uint64_t UInt64
Definition DataTypes.hpp:26
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition GPUFence.hpp:23
static constexpr void reflect(Processor &&RTTI)
Executes the given processor for every field of the struct.
Definition GPUFence.hpp:26