X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilders%2Fpipelinebuilder.h;fp=source%2Fbuilders%2Fpipelinebuilder.h;h=ab0dc4b9428c603fb4b555e83ee1091b9d2ef254;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=0000000000000000000000000000000000000000;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/builders/pipelinebuilder.h b/source/builders/pipelinebuilder.h new file mode 100644 index 00000000..ab0dc4b9 --- /dev/null +++ b/source/builders/pipelinebuilder.h @@ -0,0 +1,39 @@ +#ifndef PIPELINEBUILDER_H_ +#define PIPELINEBUILDER_H_ + +#include +#include + +namespace Msp { +namespace GL { + +class Framebuffer; +class Pipeline; +class PipelineTemplate; +class PostProcessor; +class Renderable; +class View; + +class PipelineBuilder +{ +private: + const PipelineTemplate &tmpl; + std::map renderables; + std::map 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