]> git.tdb.fi Git - libs/gl.git/blob - source/pipelinebuilder.h
Support named postprocessor slots in pipeline templates
[libs/gl.git] / source / pipelinebuilder.h
1 #ifndef PIPELINEBUILDER_H_
2 #define PIPELINEBUILDER_H_
3
4 #include <map>
5 #include <string>
6
7 namespace Msp {
8 namespace GL {
9
10 class Framebuffer;
11 class Pipeline;
12 class PipelineTemplate;
13 class PostProcessor;
14 class Renderable;
15 class View;
16
17 class PipelineBuilder
18 {
19 private:
20         const PipelineTemplate &tmpl;
21         std::map<std::string, Renderable *> renderables;
22         std::map<std::string, PostProcessor *> postprocessors;
23
24 public:
25         PipelineBuilder(const PipelineTemplate &);
26
27         void set_renderable(const std::string &, Renderable &);
28         void set_postprocessor(const std::string &, PostProcessor &);
29
30         void build(Pipeline &) const;
31         Pipeline *build(unsigned, unsigned) const;
32         Pipeline *build(const View &) const;
33         Pipeline *build(const Framebuffer &) const;
34 };
35
36 } // namespace GL
37 } // namespace Msp
38
39 #endif