Lugdunum  0.1.0
Fence.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
6 
7 namespace lug {
8 namespace Graphics {
9 namespace Vulkan {
10 namespace API {
11 
12 class Device;
13 
14 namespace Builder {
15 
16 class Fence {
17 public:
18  Fence(const API::Device& device);
19 
20  Fence(const Fence&) = delete;
21  Fence(Fence&&) = delete;
22 
23  Fence& operator=(const Fence&) = delete;
24  Fence& operator=(Fence&&) = delete;
25 
26  ~Fence() = default;
27 
28  // Setters
29  void setFlags(VkFenceCreateFlags flags);
30 
31  // Build methods
32  bool build(API::Fence& instance, VkResult* returnResult = nullptr);
33  std::unique_ptr<API::Fence> build(VkResult* returnResult = nullptr);
34 
35 private:
37 
38  VkFenceCreateFlags _flags{0};
39 };
40 
42 
43 } // Builder
44 } // API
45 } // Vulkan
46 } // Graphics
47 } // lug
Fence & operator=(const Fence &)=delete
void setFlags(VkFenceCreateFlags flags)
Definition: Fence.inl:1
Fence(const API::Device &device)
Definition: Fence.cpp:11
bool build(API::Fence &instance, VkResult *returnResult=nullptr)
Definition: Fence.cpp:13