16 const inline VkDevice& getDevice()
const {
return m_device; }
17 const inline VkPhysicalDevice& getPhysicalDevice()
const {
return m_physicalDevice; }
18 const inline VkPhysicalDeviceProperties& getPhysicalDeviceProperties()
const {
return m_physicalDeviceProperties; }
20 void createSwapChain(VkSwapchainCreateInfoKHR& createInfo, VkSwapchainKHR* swapchain)
const;
21 void createCommandPool(VkCommandPool* commandPool, VkCommandPoolCreateInfo poolInfo)
const;
22 VkImageView createImageView(VkImage image, VkFormat format, VkImageAspectFlags aspectFlags)
const;
24 void waitDeviceIdle()
const;
25 void waitGraphicsQueueIdle()
const;
26 VkResult submitGraphicsQueue(uint32_t submitCount,
const VkSubmitInfo* submitInfo, VkFence fence)
const;
27 VkResult presentKHR(
const VkPresentInfoKHR* presentInfo)
const;
29 uint32_t findMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties)
const;
30 VkFormat findDepthFormat()
const;
31 VkFormat findSupportedFormat(
const std::vector<VkFormat>& candidates, VkImageTiling tiling, VkFormatFeatureFlags features)
const;
35 VkPhysicalDevice m_physicalDevice = VK_NULL_HANDLE;
37 VkQueue m_presentQueue;
38 VkQueue m_graphicsQueue;
40 VkPhysicalDeviceProperties m_physicalDeviceProperties{};
43 const Window* m_window =
nullptr;
45 void pickPhysicalDevice();
48 int rateDeviceSuitability(VkPhysicalDevice device);
49 bool checkDeviceExtensionSupport(VkPhysicalDevice physicalDevice,
const std::vector<const char*>& deviceExtensions);