X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fbuilders%2Fsequencetemplate.h;h=32736d8ee7645e255255d9275abb6156db354b1a;hb=3ac3a51c623271da815c8ee60c484445871753bf;hp=5c5b04b5fc5f315a664ad91cdd319475f7be101f;hpb=dff7004fa078d55911664c0f513b5dc6c9449420;p=libs%2Fgl.git diff --git a/source/builders/sequencetemplate.h b/source/builders/sequencetemplate.h index 5c5b04b5..32736d8e 100644 --- a/source/builders/sequencetemplate.h +++ b/source/builders/sequencetemplate.h @@ -14,6 +14,7 @@ namespace GL { class DepthTest; class Lighting; +class Renderable; class SequenceTemplate { @@ -55,35 +56,43 @@ public: void multisample(unsigned); void multisample_range(unsigned, unsigned); void postprocessor(const std::string &); - void step(const std::string &, const std::string &); + void step(const std::string &); + void step_with_slot(const std::string &, const std::string &); }; struct Step { class Loader: public DataFile::CollectionObjectLoader { + private: + std::string inline_base_name; + public: Loader(Step &); Loader(Step &, Collection &); private: void init(); + public: + void set_inline_base_name(const std::string &); + + private: void blend(BlendFactor, BlendFactor); void blend_predefined(const std::string &); void depth_test(Predicate); void depth_test_predefined(const std::string &); void lighting(const std::string &); void lighting_inline(); - // TODO requires support for scenes in Resources - //void scene(const std::string &); + void object(const std::string &); + void scene(const std::string &); }; std::string tag; - RefPtr lighting; + const Lighting *lighting; RefPtr depth_test; RefPtr blend; - std::string renderable_name; - //Renderable *default_renderable; + std::string slot_name; + Renderable *default_renderable; ~Step(); }; @@ -101,7 +110,6 @@ public: private: typedef TypeRegistry PostProcessorRegistry; - Resources *resources; bool hdr; bool alpha; unsigned required_multisample; @@ -113,7 +121,6 @@ public: SequenceTemplate(); ~SequenceTemplate(); - Resources &get_resources() const; bool get_hdr() const { return hdr; } bool get_alpha() const { return alpha; } unsigned get_required_multisample() const { return required_multisample; }