2#include <vulkan/vulkan.h>
8 VkSurfaceCapabilitiesKHR surface_capabilities;
9 VkSurfaceFormatKHR surface_format;
24 struct queue_family_indices {
25 uint32_t graphics = -1;
26 uint32_t compute = -1;
27 uint32_t transfer = -1;
50 return m_queue_indices;
53 [[nodiscard]] VkPhysicalDeviceMemoryProperties memory_properties()
61 const VkSurfaceKHR& p_surface);
68 const VkSurfaceKHR& p_surface);
77 operator VkPhysicalDevice() {
return m_physical_driver; }
86 operator VkPhysicalDevice()
const {
return m_physical_driver; }
89 queue_family_indices select_queue_family_indices();
92 VkPhysicalDevice m_physical_driver =
nullptr;
93 queue_family_indices m_queue_indices{};
94 std::vector<VkQueueFamilyProperties> m_queue_family_properties{};
95 surface_properties m_surface_properties{};
vulkan-specific implementation wrapper around VkPhysicalDevice
Definition vk_physical_driver.hpp:23
vk_physical_driver(const VkInstance &p_instance)
constructs a new vulkan physical device
uint32_t read_presentation_index(const VkSurfaceKHR &p_surface)
surface_properties get_surface_properties(const VkSurfaceKHR &p_surface)
querying surface properties based on the currently specified VkSurfaceKHR handle created
queue_family_indices read_queue_family_indices() const
gives you the queue families that are supported
Definition vk_physical_driver.hpp:49
Definition vk_physical_driver.hpp:7