49 vk::UniqueSwapchainKHR& get_swapchain();
50 vk::SwapchainCreateInfoKHR& get_swapchain_create_info();
51 [[
nodiscard]]
const std::vector<vk::Image>& get_swapchain_images()
const;
52 vk::SurfaceFormatKHR& get_surface_format();
53 vk::Extent2D& get_swapchain_extent();
54 [[
nodiscard]]
const std::vector<vk::UniqueImageView>& get_swapchain_image_views()
const;
56 [[
nodiscard]]
const std::vector<vk::UniqueFramebuffer>& get_framebuffers()
const;
58 [[
nodiscard]] vk::RenderPass get_render_pass()
const;
60 std::expected<uint32_t, vk::Result> get_vulkan_images(vk::UniqueSemaphore& image_acquired);
63 void rebuild_per_image_sync();
65 [[
nodiscard]] vk::CommandPool get_command_pool()
const;
67 void resize(
int witdh,
int height);
77 void create_swapchain();
78 void create_render_pass();
80 void create_command_pool();
82 void create_swapchain_dependent_resources();
83 void create_framebuffers();
112 bool m_is_minimized{};
113 bool m_is_framebuffer_resized{};
Definition LayerList.hpp:21
Definition VulkanContext.hpp:22
Definition VulkanWindow.hpp:35
bool is_framebuffer_resized() const
Definition VulkanWindow.hpp:70
vk::SwapchainCreateInfoKHR m_swapchain_create_info
Definition VulkanWindow.hpp:94
VulkanContext & m_vulkan_ctx
Definition VulkanWindow.hpp:85
std::vector< vk::UniqueCommandBuffer > m_command_buffers
Definition VulkanWindow.hpp:105
VulkanContext & get_vulkan_context()
Definition VulkanWindow.hpp:74
std::vector< vk::Image > m_swapchain_images
Definition VulkanWindow.hpp:96
vk::UniqueCommandPool m_command_pool
Definition VulkanWindow.hpp:104
vk::UniqueSwapchainKHR m_swapchain
Definition VulkanWindow.hpp:93
vk::CommandBuffer get_current_command_buffer() const
Definition VulkanWindow.hpp:73
vk::UniqueSurfaceKHR m_surface
Definition VulkanWindow.hpp:91
std::vector< SwapchainSync > m_swapchain_syncs
Definition VulkanWindow.hpp:110
vk::SurfaceFormatKHR m_surface_format
Definition VulkanWindow.hpp:99
vk::UniqueRenderPass m_render_pass
Definition VulkanWindow.hpp:102
vk::SurfaceCapabilitiesKHR m_surface_capabilities
Definition VulkanWindow.hpp:100
vk::Extent2D m_swapchain_extent
Definition VulkanWindow.hpp:98
vk::Device & m_device
Definition VulkanWindow.hpp:86
std::vector< vk::UniqueImageView > m_swapchain_image_views
Definition VulkanWindow.hpp:97
Window & m_window
Definition VulkanWindow.hpp:89
std::vector< FrameSync > m_frame_syncs
Definition VulkanWindow.hpp:109
std::vector< vk::UniqueFramebuffer > m_framebuffers
Definition VulkanWindow.hpp:107
void reset_framebuffer_resized()
Definition VulkanWindow.hpp:71
bool is_minimized() const
Definition VulkanWindow.hpp:69
Definition Application.hpp:28
Definition VulkanWindow.hpp:19
vk::UniqueSemaphore image_acquired
Definition VulkanWindow.hpp:20
vk::UniqueFence in_flight
Definition VulkanWindow.hpp:21
Definition VulkanWindow.hpp:24
vk::UniqueSemaphore render_complete
Definition VulkanWindow.hpp:25
constexpr T g_type_max
Definition types.hpp:21