3#include "spark/render/SwapChain.h"
4#include "spark/render/Format.h"
5#include "spark/render/vk/Export.h"
6#include "spark/render/vk/Helpers.h"
7#include "spark/render/vk/VulkanFrameBuffer.h"
8#include "spark/render/vk/VulkanImage.h"
10#include "spark/math/Vector2.h"
12SPARK_FWD_DECLARE_VK_HANDLE(VkSemaphore)
14namespace spark::render::vk
32 Format surface_format = Format::B8G8R8A8_SRGB,
34 unsigned buffers = 3);
46 [[nodiscard]]
const VkSemaphore& semaphore()
const noexcept;
49 [[nodiscard]]
unsigned buffers()
const noexcept override;
55 [[nodiscard]] Format surfaceFormat()
const noexcept override;
58 [[nodiscard]] std::vector<Format> surfaceFormats()
const noexcept override;
64 [[nodiscard]]
unsigned swapBackBuffer()
const noexcept override;
67 [[nodiscard]] std::vector<const IVulkanImage*> images()
const noexcept override;
70 [[nodiscard]]
const IVulkanImage* image(
unsigned back_buffer)
const override;
77 std::unique_ptr<Impl> m_impl;
A vector with two components.
Definition Vector2.h:13
Represents a swap chain, i.e. a chain of multiple IImage instances, that can be presented to a ISurfa...
Definition SwapChain.h:101
Represents a Vulkan image.
Definition VulkanImage.h:33
Vulkan implementation of IGraphicsDevice.
Definition VulkanDevice.h:25
Vulkan implementation of IFrameBuffer.
Definition VulkanFrameBuffer.h:21
Vulkan implementation of ISwapChain.
Definition VulkanSwapChain.h:22
Definition VulkanSwapChain.cpp:13