45 void setup_backend_service(
const std::shared_ptr<Registry::Service::DisplayService>& display_service);
56 bool register_window(const
std::shared_ptr<
Window>& window);
57 void unregister_window(const
std::shared_ptr<
Window>& window);
58 [[nodiscard]]
bool is_window_registered(const
std::shared_ptr<
Window>& window) const;
63 void render_window(const
std::shared_ptr<
Window>& window);
64 void render_all_windows();
65 void handle_window_resize();
67 void submit_and_present(
69 const vk::CommandBuffer& command_buffer);
78 [[nodiscard]] uint32_t get_swapchain_image_count(const
std::shared_ptr<
Window>& window) const;
High-level wrapper for Vulkan instance and device.
std::vector< vk::Semaphore > image_available
uint32_t current_image_index
std::shared_ptr< Window > window
std::vector< vk::Fence > in_flight
std::unique_ptr< VKSwapchain > swapchain
void cleanup(VKContext &context)
WindowRenderContext(WindowRenderContext &&)=default
std::vector< vk::Semaphore > render_finished
WindowRenderContext()=default
WindowRenderContext & operator=(WindowRenderContext &&)=default
WindowRenderContext(const WindowRenderContext &)=delete
WindowRenderContext & operator=(const WindowRenderContext &)=delete
~WindowRenderContext()=default