--- /dev/null
+#ifndef SEQUENCEBUILDER_H_
+#define SEQUENCEBUILDER_H_
+
+#include <map>
+#include <string>
+
+namespace Msp {
+namespace GL {
+
+class Framebuffer;
+class Sequence;
+class SequenceTemplate;
+class PostProcessor;
+class Renderable;
+class View;
+
+class SequenceBuilder
+{
+private:
+ const SequenceTemplate &tmpl;
+ std::map<std::string, Renderable *> renderables;
+ std::map<std::string, PostProcessor *> postprocessors;
+
+public:
+ SequenceBuilder(const SequenceTemplate &);
+
+ void set_renderable(const std::string &, Renderable &);
+ void set_postprocessor(const std::string &, PostProcessor &);
+
+ void build(Sequence &) const;
+ Sequence *build(unsigned, unsigned) const;
+ Sequence *build(const View &) const;
+ Sequence *build(const Framebuffer &) const;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif