Files
XCEngine/engine/include/XCEngine/Rendering/RenderPipeline.h

32 lines
844 B
C++

#pragma once
#include <XCEngine/Rendering/Execution/FrameExecutionContext.h>
#include <XCEngine/Rendering/FrameData/RenderSceneData.h>
#include <XCEngine/Rendering/RenderContext.h>
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