1 #ifndef PIPELINETEMPLATE_H_
2 #define PIPELINETEMPLATE_H_
6 #include <msp/datafile/objectloader.h>
8 #include "postprocessor.h"
17 class PipelineTemplate
20 class Loader: public DataFile::CollectionObjectLoader<PipelineTemplate>
23 Loader(PipelineTemplate &);
24 Loader(PipelineTemplate &, Collection &);
28 void multisample(unsigned);
29 void multisample_range(unsigned, unsigned);
30 void pass(const std::string &, const std::string &);
38 class Loader: public DataFile::CollectionObjectLoader<Pass>
42 Loader(Pass &, Collection &);
46 void blend(BlendFactor, BlendFactor);
47 void blend_predefined(const std::string &);
48 void depth_test(Predicate);
49 void depth_test_predefined(const std::string &);
50 void lighting(const std::string &);
51 void lighting_inline();
52 // TODO requires support for scenes in Resources
53 //void scene(const std::string &);
57 RefPtr<Lighting> lighting;
58 RefPtr<const DepthTest> depth_test;
59 RefPtr<const Blend> blend;
60 std::string renderable_name;
61 //Renderable *default_renderable;
66 typedef std::vector<Pass> PassArray;
67 typedef std::vector<PostProcessor::Template *> PostProcessorArray;
71 unsigned required_multisample;
72 unsigned max_multisample;
74 PostProcessorArray postprocessors;
80 bool get_hdr() const { return hdr; }
81 unsigned get_required_multisample() const { return required_multisample; }
82 unsigned get_maximum_multisample() const { return max_multisample; }
83 const PassArray &get_passes() const { return passes; }
84 const PostProcessorArray &get_postprocessors() const { return postprocessors; }