17 const VkExtent2D& extent,
const Swapchain* oldSwapchain =
nullptr);
27 VkResult
AcquireNextImage(
const VkSemaphore& presentCompleteSemaphore = VK_NULL_HANDLE,
28 VkFence fence = VK_NULL_HANDLE);
36 VkResult
QueuePresent(
const VkQueue& presentQueue,
const VkSemaphore& waitSemaphore = VK_NULL_HANDLE);
38 bool IsSameExtent(
const VkExtent2D& extent2D)
40 return m_Extent.width == extent2D.width && m_Extent.height == extent2D.height;
43 operator const VkSwapchainKHR&()
const
48 const VkExtent2D& GetExtent()
const
52 uint32_t GetImageCount()
const
56 VkSurfaceTransformFlagsKHR GetPreTransform()
const
58 return m_PreTransform;
60 VkCompositeAlphaFlagBitsKHR GetCompositeAlpha()
const
62 return m_CompositeAlpha;
64 const std::vector<VkImage>& GetImages()
const
68 const VkImage& GetActiveImage()
const
70 return m_Images[m_ActiveImageIndex];
72 const std::vector<VkImageView>& GetImageViews()
const
76 const VkSwapchainKHR& GetSwapchain()
const
80 uint32_t GetActiveImageIndex()
const
82 return m_ActiveImageIndex;
91 VkPresentModeKHR m_PresentMode;
93 uint32_t m_ImageCount = 0;
94 VkSurfaceTransformFlagsKHR m_PreTransform;
95 VkCompositeAlphaFlagBitsKHR m_CompositeAlpha;
96 std::vector<VkImage> m_Images;
97 std::vector<VkImageView> m_ImageViews;
98 VkSwapchainKHR m_Swapchain = VK_NULL_HANDLE;
100 VkFence m_FenceImage = VK_NULL_HANDLE;
101 uint32_t m_ActiveImageIndex;