28 vk::UniqueInstance& get_instance();
29 std::vector<const char*>& get_device_extensions();
30 vk::PhysicalDevice& get_physical_device();
31 vk::UniqueDevice& get_vulkan_device();
32 vk::PhysicalDeviceFeatures2& get_features2();
33 vk::PhysicalDeviceVulkan12Features& get_features12();
34 vk::PhysicalDeviceVulkan13Features& get_features13();
38 [[
nodiscard]] vk::Queue get_graphics_queue()
const;
40 bool is_initialized() {
return m_instance.get() && m_vulkan_device && m_phys_dev; }
44 vk::UniqueInstance create_vulkan_application_instance();
45 void setup_queues(vk::SurfaceKHR
surface);
46 void setup_device_extensions();
47 void create_vulkan_device();
56 u32 m_graphics_family_index{};
RAII wrapper for initializing and terminating Glfw. Also sets a glfwErrorCallback.
Definition GlfwContext.hpp:24
Definition VulkanContext.hpp:22
std::vector< const char * > m_device_exts
Definition VulkanContext.hpp:60
vk::PhysicalDeviceFeatures2 m_features2
Definition VulkanContext.hpp:64
vk::PhysicalDeviceVulkan12Features m_features12
Definition VulkanContext.hpp:65
vk::UniqueInstance m_instance
Definition VulkanContext.hpp:51
vk::SurfaceFormatKHR get_surface_format() const
Definition VulkanContext.hpp:39
bool is_initialized()
Definition VulkanContext.hpp:40
const GlfwContext & m_glfw_ctx
Definition VulkanContext.hpp:50
vk::Queue m_graphics_queue
Definition VulkanContext.hpp:55
vk::PhysicalDevice m_phys_dev
Definition VulkanContext.hpp:52
vk::PhysicalDeviceVulkan13Features m_features13
Definition VulkanContext.hpp:66
vk::UniqueDevice m_vulkan_device
Definition VulkanContext.hpp:53
vk::SurfaceFormatKHR m_surface_format
Definition VulkanContext.hpp:57
VmaAllocator get_vma_allocator() const
Definition VulkanContext.hpp:35