]> git.tdb.fi Git - libs/gl.git/blob - source/builders/sequencebuilder.h
Make it possible to specify explicit clear values
[libs/gl.git] / source / builders / sequencebuilder.h
1 #ifndef SEQUENCEBUILDER_H_
2 #define SEQUENCEBUILDER_H_
3
4 #include <map>
5 #include <string>
6
7 namespace Msp {
8 namespace GL {
9
10 class Framebuffer;
11 class FrameFormat;
12 class Sequence;
13 class SequenceTemplate;
14 class PostProcessor;
15 class Renderable;
16 class View;
17
18 class SequenceBuilder
19 {
20 private:
21         const SequenceTemplate &tmpl;
22         std::map<std::string, Renderable *> renderables;
23         std::map<std::string, PostProcessor *> postprocessors;
24         std::string debug_name;
25
26 public:
27         SequenceBuilder(const SequenceTemplate &);
28
29         void set_renderable(const std::string &, Renderable &);
30         void set_postprocessor(const std::string &, PostProcessor &);
31
32         void set_debug_name(const std::string &);
33
34         void build(Sequence &) const;
35         Sequence *build() const;
36         Sequence *build(unsigned, unsigned) const;
37         Sequence *build(const View &) const;
38         Sequence *build(const Framebuffer &) const;
39
40         FrameFormat create_frame_format() const;
41 };
42
43 } // namespace GL
44 } // namespace Msp
45
46 #endif