27 vk::UniqueInstance& get_instance();
28 std::vector<const char*>& get_device_extensions();
29 vk::PhysicalDevice& get_physical_device();
30 vk::UniqueDevice& get_vulkan_device();
31 vk::PhysicalDeviceFeatures2& get_features2();
32 vk::PhysicalDeviceVulkan12Features& get_features12();
33 vk::PhysicalDeviceVulkan13Features& get_features13();
37 [[
nodiscard]] vk::Queue get_graphics_queue()
const;
39 bool is_initialized() {
return m_instance.get() && m_vulkan_device && m_phys_dev; }
42 vk::UniqueInstance create_vulkan_application_instance();
43 void setup_queues(vk::SurfaceKHR
surface);
44 void setup_device_extensions();
45 void create_vulkan_device();
54 U32 m_graphics_family_index{};
RAII wrapper for initializing and terminating Glfw. Also sets a glfwErrorCallback.
Definition GlfwContext.hpp:25
Definition VulkanContext.hpp:22
std::vector< const char * > m_device_exts
Definition VulkanContext.hpp:58
vk::PhysicalDeviceFeatures2 m_features2
Definition VulkanContext.hpp:66
vk::PhysicalDeviceVulkan12Features m_features12
Definition VulkanContext.hpp:67
vk::UniqueInstance m_instance
Definition VulkanContext.hpp:49
vk::SurfaceFormatKHR get_surface_format() const
Definition VulkanContext.hpp:38
bool is_initialized()
Definition VulkanContext.hpp:39
const GlfwContext & m_glfw_ctx
Definition VulkanContext.hpp:48
vk::Queue m_graphics_queue
Definition VulkanContext.hpp:53
vk::PhysicalDevice m_phys_dev
Definition VulkanContext.hpp:50
vk::PhysicalDeviceVulkan13Features m_features13
Definition VulkanContext.hpp:68
vk::UniqueDevice m_vulkan_device
Definition VulkanContext.hpp:51
vk::SurfaceFormatKHR m_surface_format
Definition VulkanContext.hpp:55
VmaAllocator get_vma_allocator() const
Definition VulkanContext.hpp:34