]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/pipelinebuilder.h
Rearrange soucre files into subdirectories
[libs/gl.git] / source / builders / pipelinebuilder.h
diff --git a/source/builders/pipelinebuilder.h b/source/builders/pipelinebuilder.h
new file mode 100644 (file)
index 0000000..ab0dc4b
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef PIPELINEBUILDER_H_
+#define PIPELINEBUILDER_H_
+
+#include <map>
+#include <string>
+
+namespace Msp {
+namespace GL {
+
+class Framebuffer;
+class Pipeline;
+class PipelineTemplate;
+class PostProcessor;
+class Renderable;
+class View;
+
+class PipelineBuilder
+{
+private:
+       const PipelineTemplate &tmpl;
+       std::map<std::string, Renderable *> renderables;
+       std::map<std::string, PostProcessor *> postprocessors;
+
+public:
+       PipelineBuilder(const PipelineTemplate &);
+
+       void set_renderable(const std::string &, Renderable &);
+       void set_postprocessor(const std::string &, PostProcessor &);
+
+       void build(Pipeline &) const;
+       Pipeline *build(unsigned, unsigned) const;
+       Pipeline *build(const View &) const;
+       Pipeline *build(const Framebuffer &) const;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif