Lugdunum  0.1.0
Loader.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 #include <lug/System/Library.hpp>
6 
7 namespace lug {
8 namespace Graphics {
9 namespace Vulkan {
10 namespace API {
11 
12 class Device;
13 class Instance;
14 
16 public:
17  Loader() = default;
18 
19  Loader(const Loader&) = delete;
20  Loader(Loader&&) = delete;
21 
22  Loader& operator=(const Loader&) = delete;
23  Loader& operator=(Loader&&) = delete;
24 
25  ~Loader() = default;
26 
27  bool loadCoreFunctions();
28  bool loadInstanceFunctions(const Instance& instance);
29  bool loadDeviceFunctions(const Device& device);
30 
31  void unload();
32 
33 private:
34  System::Library::Handle _handle{nullptr};
35 };
36 
37 } // API
38 } // Vulkan
39 } // Graphics
40 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11