Interface for backend-specific material GPU resources.
Interface for GPU mesh resource management.
Interface for rendering backend resource aggregation and submission.
Defines an abstract interface for rendering backends.
virtual void WaitIdle()=0
Waits until the GPU has finished all pending rendering operations.
virtual void ShutdownRenderer()=0
Destroys and cleans up all rendering resources.
virtual void EndFrame()=0
Completes the current frame rendering and presents the result.
virtual void RegisterObserver(IRendererObserver *notifier)=0
Registers an observer for rendering events.
virtual void UnregisterObserver(IRendererObserver *notifier)=0
Unregisters a previously registered observer.
virtual void BeginRenderPass()=0
Begins the active render pass for the current frame.
virtual void DrawFrame()=0
Executes a full frame rendering cycle.
virtual IMeshRenderResources * ProvideMeshRenderResources() const =0
Provides access to mesh-related GPU resources.
virtual IMaterialRenderResources * ProvideMaterialRenderResources() const =0
Provides access to material-related GPU resources.
virtual bool BeginFrame()=0
Begins frame rendering operations.
virtual IRenderResources * ProvideRenderResources() const =0
Provides access to the general rendering resource manager.
virtual void EndRenderPass()=0
Ends the active render pass.
virtual ITextureRenderResources * ProvideTextureRenderResources() const =0
Provides access to texture-related GPU resources.
virtual void InitializeRenderer()=0
Initializes all rendering subsystems and GPU resources.
virtual ~IRenderer()=default
Virtual destructor for safe polymorphic deletion.
Interface for observing renderer resource lifecycle events.
Interface for backend-specific GPU texture resource management.