29 const std::vector<const char*>& required_extensions = {});
39 [[nodiscard]] vk::Instance
get_instance()
const {
return m_instance.get_instance(); }
44 [[nodiscard]] vk::PhysicalDevice
get_physical_device()
const {
return m_device.get_physical_device(); }
49 [[nodiscard]] vk::Device
get_device()
const {
return m_device.get_device(); }
71 return m_device.get_queue_families();
81 return m_device.graphics_family_can_present(surface);
89 return m_device.get_present_queue(family_index);
97 return m_device.get_preferred_present_queue();
105 vk::SurfaceKHR create_surface(std::shared_ptr<Window>
window);
111 void destroy_surface(vk::SurfaceKHR surface);
bool graphics_family_can_present(vk::SurfaceKHR surface) const
Confirm the graphics family presents to a surface.
vk::Queue get_present_queue(uint32_t family_index) const
Queue for a presentation-capable family.
vk::Device get_device() const
Get logical device.
vk::Queue get_preferred_present_queue() const
Queue for the preferred presentation family.
vk::Queue get_compute_queue() const
Get compute queue.
const GraphicsSurfaceInfo & get_surface_info() const
Get graphics surface info.
vk::Queue get_graphics_queue() const
Get graphics queue.
std::vector< vk::SurfaceKHR > m_surfaces
GlobalGraphicsConfig m_graphics_config
vk::Queue get_transfer_queue() const
Get transfer queue.
vk::PhysicalDevice get_physical_device() const
Get physical device.
vk::Instance get_instance() const
Get Vulkan instance.
const QueueFamilyIndices & get_queue_families() const
Get queue family indices.
High-level wrapper for Vulkan instance and device.