2#ifndef LIBSBX_GRAPHICS_DEVICES_SURFACE_HPP_
3#define LIBSBX_GRAPHICS_DEVICES_SURFACE_HPP_
5#include <vulkan/vulkan.hpp>
7#include <libsbx/utility/noncopyable.hpp>
9#include <libsbx/graphics/devices/instance.hpp>
10#include <libsbx/graphics/devices/physical_device.hpp>
11#include <libsbx/graphics/devices/logical_device.hpp>
13namespace sbx::graphics {
23 auto handle()
const noexcept ->
const VkSurfaceKHR&;
25 operator const VkSurfaceKHR&()
const noexcept;
27 auto capabilities()
const noexcept -> VkSurfaceCapabilitiesKHR;
29 auto format()
const noexcept ->
const VkSurfaceFormatKHR&;
31 auto current_extent()
const noexcept -> VkExtent2D;
35 auto _choose_swap_surface_format(
const std::vector<VkSurfaceFormatKHR>& available_formats) -> VkSurfaceFormatKHR;
37 VkSurfaceKHR _handle{};
38 VkSurfaceCapabilitiesKHR _capabilities{};
39 VkSurfaceFormatKHR _format{};
Definition: instance.hpp:11
Definition: logical_device.hpp:61
Definition: physical_device.hpp:17
Definition: surface.hpp:15
Definition: noncopyable.hpp:7