#pragma once

#include "RenderStep.hpp"

namespace TSE
{
    class RenderPipeline
    {
    private:
        std::vector<RenderStep> steps;

    public:
        void AddRenderStep(const RenderStep& step);
        void AddRenderStepAt(const RenderStep& step, int n);
        void SetRenderStepAt(const RenderStep& step, int n);
        void RemoveRenderStepAt(int n);

        int GetRenderStepCount();
        const RenderStep& GetRenderStepAt(int n);

        static RenderPipeline* CreateEmpty();
    };
} // namespace TSE
