Class VulkanContext

Class Documentation

class VulkanContext

Top-level owner of the Vulkan object hierarchy.

Owns and initializes the complete Vulkan object lifetime chain: Context → Instance → PhysicalDeviceDevice → VMA.

Constructor sequence:

  1. Creates vk::raii::Context (loads Vulkan functions)

  2. Creates VulkanInstance (creates instance and debug messenger)

  3. Selects suitable GPU via instance.get_suitable_gpu()

  4. Creates VulkanDevice from selected physical device

  5. Initializes VMA allocator

Destructor ensures correct destruction order: VMA shutdown first, then device/physical_device/instance in reverse construction order.

Public Functions

~VulkanContext()

Shuts down VMA and destroys Vulkan objects in reverse order.

const vk::raii::Instance &get_instance() const

Gets the Vulkan instance.

const VulkanDevice &get_device() const

Gets the logical device (const)

VulkanDevice &get_device()

Gets the logical device (mutable)

const VulkanPhysicalDevice &get_physical_device() const

Gets the selected physical device (GPU)

Public Static Functions

static std::unique_ptr<VulkanContext> create()

Initializes Vulkan object hierarchy and VMA.