20 operator const VkDevice&()
const
22 return logical_device_;
25 const VkDevice& GetLogicalDevice()
const
27 return logical_device_;
29 const VkPhysicalDeviceFeatures& GetEnabledFeatures()
const
31 return enabled_features_;
33 const VkQueue& GetGraphicsQueue()
const
35 return graphics_queue_;
37 const VkQueue& GetPresentQueue()
const
39 return present_queue_;
41 const VkQueue& GetComputeQueue()
const
43 return compute_queue_;
45 const VkQueue& GetTransferQueue()
const
47 return transfer_queue_;
49 uint32_t GetGraphicsFamily()
const
51 return graphics_family_;
53 uint32_t GetPresentFamily()
const
55 return present_family_;
57 uint32_t GetComputeFamily()
const
59 return compute_family_;
61 uint32_t GetTransferFamily()
const
63 return transfer_family_;
66 static const std::vector<const char*> device_extensions;
69 void CreateQueueIndices();
70 void CreateLogicalDevice();
75 VkDevice logical_device_ = VK_NULL_HANDLE;
76 VkPhysicalDeviceFeatures enabled_features_ = {};
78 VkQueueFlags supported_queues_ = {};
79 uint32_t graphics_family_ = 0;
80 uint32_t present_family_ = 0;
81 uint32_t compute_family_ = 0;
82 uint32_t transfer_family_ = 0;
84 VkQueue graphics_queue_ = VK_NULL_HANDLE;
85 VkQueue present_queue_ = VK_NULL_HANDLE;
86 VkQueue compute_queue_ = VK_NULL_HANDLE;
87 VkQueue transfer_queue_ = VK_NULL_HANDLE;