MayaFlux 0.4.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

void begin_frame (std::shared_ptr< Window >) override
 Begin rendering frame for the specified window.
 
void cleanup () override
 Cleanup the graphics backend and release all resources.
 
void end_frame (std::shared_ptr< Window >) override
 End rendering frame for the specified window.
 
GlobalGraphicsConfig::GraphicsApi get_backend_type () override
 Get the type of the graphics backend.
 
VKCommandManagerget_command_manager ()
 Get reference to the backend command manager.
 
VKContextget_context ()
 Get reference to the backend window handler.
 
const void * get_native_context () const override
 
void * get_native_context () override
 Get context pointer specific to the graphics backend (e.g., OpenGL context, Vulkan instance, etc.)
 
BackendPipelineManagerget_pipeline_manager ()
 Get reference to the backend pipeline manager.
 
BackendResourceManagerget_resource_manager ()
 Get reference to the backend resource manager.
 
BackendWindowHandlerget_window_handler ()
 Get reference to the backend window handler.
 
void handle_window_resize () override
 Handle window resize event for the specified window.
 
bool initialize (const GlobalGraphicsConfig &config) override
 Initialize the graphics backend with global configuration.
 
bool is_window_registered (std::shared_ptr< Window > window) override
 Check if a window is registered with the graphics backend.
 
bool register_window (std::shared_ptr< Window > window) override
 Register a window with the graphics backend for rendering.
 
void render_all_windows () override
 Render all registered windows (batch optimization) Default: calls render_window() for each registered window.
 
void render_window (std::shared_ptr< Window > window) override
 Render the contents of the specified window.
 
void unregister_window (std::shared_ptr< Window > window) override
 Unregister a window from the graphics backend.
 
 VulkanBackend ()
 
void wait_idle () override
 Wait until the graphics backend is idle.
 
 ~VulkanBackend () override
 
- 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::shared_ptr< Registry::Service::BufferServicem_buffer_service
 
std::unique_ptr< VKCommandManagerm_command_manager
 
std::shared_ptr< Registry::Service::ComputeServicem_compute_service
 
std::unique_ptr< VKContextm_context
 
std::shared_ptr< Registry::Service::DisplayServicem_display_service
 
bool m_is_initialized {}
 
std::unique_ptr< BackendPipelineManagerm_pipeline_manager
 
std::unique_ptr< BackendResourceManagerm_resource_manager
 
std::unique_ptr< BackendWindowHandlerm_window_handler
 

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: