3 This file is part of libmspgl
4 Copyright © 2009 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef MSP_GL_PIPELINE_H_
9 #define MSP_GL_PIPELINE_H_
12 #include "pipelinepass.h"
13 #include "renderable.h"
24 class Pipeline: public Renderable
27 std::map<unsigned, PipelinePass> passes;
28 std::vector<Tag> pass_order;
29 std::vector<const Renderable *> renderables;
30 std::vector<Effect *> effects;
31 std::vector<PostProcessor *> postproc;
37 Renderbuffer *depth_buf;
40 Pipeline(unsigned, unsigned, bool);
43 PipelinePass &add_pass(const Tag &tag);
44 PipelinePass &get_pass(const Tag &tag);
45 const PipelinePass &get_pass(const Tag &tag) const;
46 virtual bool has_pass(const Tag &tag) const;
48 void add_renderable(const Renderable &);
49 void add_effect(Effect &);
50 void add_postprocessor(PostProcessor &);
52 virtual void render(const Tag &tag=Tag()) const;
53 void render_all() const;