#pragma once #include #include #include namespace XCEngine { namespace Rendering { class RenderSurface; class RenderPipeline { public: virtual ~RenderPipeline() = default; virtual bool Initialize(const RenderContext& context) = 0; virtual void Shutdown() = 0; virtual bool Render(const FrameExecutionContext& executionContext) { return Render( executionContext.renderContext, executionContext.surface, executionContext.sceneData); } virtual bool Render( const RenderContext& context, const RenderSurface& surface, const RenderSceneData& sceneData) = 0; }; } // namespace Rendering } // namespace XCEngine