|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
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 |
| BackendResourceManager & | get_resource_manager () |
| Get reference to the backend resource manager. | |
| BackendPipelineManager & | get_pipeline_manager () |
| Get reference to the backend pipeline manager. | |
| VKContext & | get_context () |
| Get reference to the backend window handler. | |
| VKCommandManager & | get_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< VKContext > | m_context |
| std::unique_ptr< VKCommandManager > | m_command_manager |
| std::unique_ptr< BackendResourceManager > | m_resource_manager |
| std::unique_ptr< BackendPipelineManager > | m_pipeline_manager |
| std::unique_ptr< BackendWindowHandler > | m_window_handler |
| bool | m_is_initialized {} |
| std::shared_ptr< Registry::Service::BufferService > | m_buffer_service |
| std::shared_ptr< Registry::Service::ComputeService > | m_compute_service |
| std::shared_ptr< Registry::Service::DisplayService > | m_display_service |
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.