29 const std::vector<const char*>& required_extensions = {});
bool graphics_family_can_present(vk::SurfaceKHR surface) const
Confirm the graphics family presents to a surface.
void wait_idle() const
Wait for device idle.
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.
vk::SurfaceKHR create_surface(std::shared_ptr< Window > window)
Create surface from window's native handles.
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
void cleanup()
Cleanup all Vulkan resources.
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.
void destroy_surface(vk::SurfaceKHR surface)
Destroy a specific surface Called when window is unregistered.
High-level wrapper for Vulkan instance and device.
vk::PhysicalDevice get_physical_device() const
Get physical device handle.
const QueueFamilyIndices & get_queue_families() const
Get queue family indices.
bool graphics_family_can_present(vk::SurfaceKHR surface) const
Confirm the graphics family presents to a concrete surface.
vk::Queue get_preferred_present_queue() const
Queue for the preferred presentation family.
vk::Device get_device() const
Get logical device handle.
vk::Queue get_present_queue(uint32_t family_index) const
Queue for a presentation-capable family.
vk::Queue get_graphics_queue() const
Get graphics queue.
vk::Queue get_compute_queue() const
Get compute queue (may be same as graphics)
vk::Queue get_transfer_queue() const
Get transfer queue (may be same as graphics)
void wait_idle() const
Wait for the device to become idle.
Manages Vulkan physical device selection and logical device creation.
vk::Instance get_instance() const
Get the Vulkan instance handle.
Manages Vulkan instance creation and validation layers.
GraphicsSurfaceInfo surface_info
System-wide configuration for visual stream processing.
System-wide configuration for visual stream processing.
Stores indices of queue families we need.