MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Core::VulkanBackend Class Reference

Vulkan implementation of the IGraphicsBackend interface. More...

#include <VulkanBackend.hpp>

+ Inheritance diagram for MayaFlux::Core::VulkanBackend:
+ Collaboration diagram for MayaFlux::Core::VulkanBackend:

Public Member Functions

 VulkanBackend ()
 
 ~VulkanBackend () override
 
bool initialize (const GlobalGraphicsConfig &config) override
 Initialize the graphics backend with global configuration.
 
void cleanup () override
 Cleanup the graphics backend and release all resources.
 
GlobalGraphicsConfig::GraphicsApi get_backend_type () override
 Get the type of the graphics backend.
 
bool register_window (std::shared_ptr< Window > window) override
 Register a window with the graphics backend for rendering.
 
void unregister_window (std::shared_ptr< Window > window) override
 Unregister a window from the graphics backend.
 
bool is_window_registered (std::shared_ptr< Window > window) override
 Check if a window is registered with the graphics backend.
 
void begin_frame (std::shared_ptr< Window >) override
 Begin rendering frame for the specified window.
 
void render_window (std::shared_ptr< Window > window) override
 Render the contents of the specified window.
 
void render_all_windows () override
 Render all registered windows (batch optimization) Default: calls render_window() for each registered window.
 
void end_frame (std::shared_ptr< Window >) override
 End rendering frame for the specified window.
 
void wait_idle () override
 Wait until the graphics backend is idle.
 
void handle_window_resize () override
 Handle window resize event for the specified window.
 
void * get_native_context () override
 Get context pointer specific to the graphics backend (e.g., OpenGL context, Vulkan instance, etc.)
 
const void * get_native_context () const override
 
BackendResourceManagerget_resource_manager ()
 Get reference to the backend resource manager.
 
BackendPipelineManagerget_pipeline_manager ()
 Get reference to the backend pipeline manager.
 
VKContextget_context ()
 Get reference to the backend window handler.
 
VKCommandManagerget_command_manager ()
 Get reference to the backend command manager.
 
- Public Member Functions inherited from MayaFlux::Core::IGraphicsBackend
virtual ~IGraphicsBackend ()=default
 

Private Member Functions

void register_backend_services ()
 
void unregister_backend_services ()
 

Private Attributes

std::unique_ptr< VKContextm_context
 
std::unique_ptr< VKCommandManagerm_command_manager
 
std::unique_ptr< BackendResourceManagerm_resource_manager
 
std::unique_ptr< BackendPipelineManagerm_pipeline_manager
 
std::unique_ptr< BackendWindowHandlerm_window_handler
 
bool m_is_initialized {}
 
std::shared_ptr< Registry::Service::BufferServicem_buffer_service
 
std::shared_ptr< Registry::Service::ComputeServicem_compute_service
 
std::shared_ptr< Registry::Service::DisplayServicem_display_service
 

Detailed Description

Vulkan implementation of the IGraphicsBackend interface.

This class provides a Vulkan-based graphics backend for rendering to windows. It manages Vulkan context, swapchains, command buffers, and synchronization objects for each registered window. It supports window registration, rendering, and handling window resize events.

Definition at line 33 of file VulkanBackend.hpp.


The documentation for this class was generated from the following files: