29 const std::vector<const char*>& required_extensions = {});
void wait_idle() const
Wait for device idle.
bool update_present_family(vk::SurfaceKHR surface)
Update presentation support for a surface.
vk::Device get_device() const
Get logical device.
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.
vk::Device get_device() const
Get logical device handle.
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.