sandbox
Loading...
Searching...
No Matches
surface.hpp
1#ifndef LIBSBX_GRAPHICS_DEVICES_SURFACE_HPP_
2#define LIBSBX_GRAPHICS_DEVICES_SURFACE_HPP_
3
4#include <vulkan/vulkan.hpp>
5
6#include <libsbx/utility/noncopyable.hpp>
7
8#include <libsbx/graphics/devices/instance.hpp>
9#include <libsbx/graphics/devices/physical_device.hpp>
10#include <libsbx/graphics/devices/logical_device.hpp>
11
12namespace sbx::graphics {
13
15
16public:
17
19
20 ~surface();
21
22 auto handle() const noexcept -> const VkSurfaceKHR&;
23
24 operator const VkSurfaceKHR&() const noexcept;
25
26 auto capabilities() const noexcept -> VkSurfaceCapabilitiesKHR;
27
28 auto format() const noexcept -> const VkSurfaceFormatKHR&;
29
30private:
31
32 auto _choose_swap_surface_format(const std::vector<VkSurfaceFormatKHR>& available_formats) -> VkSurfaceFormatKHR;
33
34 VkSurfaceKHR _handle{};
35 VkSurfaceCapabilitiesKHR _capabilities{};
36 VkSurfaceFormatKHR _format{};
37
38}; // class surface
39
40} // namespace sbx::graphics
41
42#endif // LIBSBX_GRAPHICS_DEVICES_SURFACE_HPP_
Definition: instance.hpp:10
Definition: logical_device.hpp:55
Definition: physical_device.hpp:16
Definition: surface.hpp:14
Definition: noncopyable.hpp:6