18class VKCommandManager;
20class BackendResourceManager;
21class BackendPipelineManager;
22class BackendWindowHandler;
49 void cleanup()
override;
62 bool register_window(std::shared_ptr<Window> window)
override;
68 void unregister_window(std::shared_ptr<Window> window)
override;
75 [[nodiscard]]
bool is_window_registered(std::shared_ptr<Window> window)
override;
90 void render_window(std::shared_ptr<Window> window)
override;
96 void render_all_windows()
override;
110 void wait_idle()
override;
115 void handle_window_resize()
override;
120 [[nodiscard]]
void* get_native_context()
override;
121 [[nodiscard]]
const void* get_native_context()
const override;
163 bool m_is_initialized {};
165 void register_backend_services();
Manages Vulkan pipelines (compute, graphics) and related resources.
Manages Vulkan resources (buffers, images, samplers) for the graphics backend.
Manages Vulkan command pools and command buffers.
High-level wrapper for Vulkan instance and device.
void begin_frame(std::shared_ptr< Window >) override
Begin rendering frame for the specified window.
std::shared_ptr< Registry::Service::ComputeService > m_compute_service
VKCommandManager & get_command_manager()
Get reference to the backend command manager.
void unregister_backend_services()
VKContext & get_context()
Get reference to the backend window handler.
std::shared_ptr< Registry::Service::BufferService > m_buffer_service
std::unique_ptr< BackendWindowHandler > m_window_handler
std::unique_ptr< VKContext > m_context
void end_frame(std::shared_ptr< Window >) override
End rendering frame for the specified window.
std::shared_ptr< Registry::Service::DisplayService > m_display_service
std::unique_ptr< BackendPipelineManager > m_pipeline_manager
std::unique_ptr< VKCommandManager > m_command_manager
GlobalGraphicsConfig::GraphicsApi get_backend_type() override
Get the type of the graphics backend.
BackendPipelineManager & get_pipeline_manager()
Get reference to the backend pipeline manager.
BackendResourceManager & get_resource_manager()
Get reference to the backend resource manager.
std::unique_ptr< BackendResourceManager > m_resource_manager
Vulkan implementation of the IGraphicsBackend interface.