X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbuilders%2Fsequencetemplate.h;h=52c42bb1b18046490ba981cc205da22aac3559ee;hp=061fdfc39928f1b4ce8e2634ffe3e1d933ec1086;hb=ae45c0397e2cb8f0a01f2f31d01c95ff3870271e;hpb=2b2676392aff2eb6b38c3e463cc67f4d67a4ef8b diff --git a/source/builders/sequencetemplate.h b/source/builders/sequencetemplate.h index 061fdfc3..52c42bb1 100644 --- a/source/builders/sequencetemplate.h +++ b/source/builders/sequencetemplate.h @@ -8,7 +8,7 @@ #include "blend.h" #include "depthtest.h" #include "postprocessor.h" -#include "predicate.h" +#include "resources.h" #include "stenciltest.h" namespace Msp { @@ -54,6 +54,7 @@ public: Loader(SequenceTemplate &, Collection &); virtual void postprocessor_loaded(); + void clear(); void multisample(unsigned); void multisample_range(unsigned, unsigned); void postprocessor(const std::string &); @@ -69,12 +70,8 @@ public: std::string inline_base_name; public: - Loader(Step &); Loader(Step &, Collection &); - private: - void init(); - public: void set_inline_base_name(const std::string &); private: @@ -108,9 +105,18 @@ public: PostProcessor(GL::PostProcessor::Template * = 0); }; - typedef std::vector PostProcessorArray; - private: + class ClearLoader: public DataFile::ObjectLoader + { + public: + ClearLoader(SequenceTemplate &); + + private: + void color(float, float, float, float); + void depth(float); + void stencil(int); + }; + typedef TypeRegistry PostProcessorRegistry; bool hdr; @@ -118,7 +124,11 @@ private: unsigned required_multisample; unsigned max_multisample; std::vector steps; - PostProcessorArray postprocessors; + std::vector postprocessors; + bool clear_enabled; + std::vector clear_colors; + float clear_depth; + int clear_stencil; public: SequenceTemplate(); @@ -129,7 +139,11 @@ public: unsigned get_required_multisample() const { return required_multisample; } unsigned get_maximum_multisample() const { return max_multisample; } const std::vector &get_steps() const { return steps; } - const PostProcessorArray &get_postprocessors() const { return postprocessors; } + const std::vector &get_postprocessors() const { return postprocessors; } + bool is_clear_enabled() const { return clear_enabled; } + const std::vector &get_clear_colors() const { return clear_colors; } + float get_clear_depth() const { return clear_depth; } + int get_clear_stencil() const { return clear_stencil; } template static void register_postprocessor(const std::string &);