32 lines
844 B
C++
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
|