]> git.tdb.fi Git - libs/gl.git/blob - source/builders/sequencebuilder.h
Align staging memory with an alignment suitable for image transfers
[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         Sequence *create_sequence(unsigned, unsigned) const;
40 };
41
42 } // namespace GL
43 } // namespace Msp
44
45 #endif