10class IRenderResources;
11class ITextureRenderResources;
12class IMaterialRenderResources;
13class IMeshRenderResources;
14class IRenderResources;
15class IRendererObserver;
Interface for backend-specific material GPU resources.
Interface for GPU mesh resource management.
Interface for rendering backend resource aggregation and submission.
Interface for observing renderer resource lifecycle events.
Defines an abstract interface for rendering backends.
virtual void SetDefaultColor(float r, float g, float b)=0
Sets the renderer clear color.
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 backend-specific GPU texture resource management.