X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbuilders%2Fsequencetemplate.cpp;h=67fb4d91d1988cf0cac5e3461d4ac67d05adccfb;hp=be8f3d7186b3450018e04c5da50605bdb4d97467;hb=5bb193f930fb8738d099d630c4d625d82c1215b5;hpb=e9a898f315b5d1396f196d785913a283c30940f2 diff --git a/source/builders/sequencetemplate.cpp b/source/builders/sequencetemplate.cpp index be8f3d71..67fb4d91 100644 --- a/source/builders/sequencetemplate.cpp +++ b/source/builders/sequencetemplate.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "ambientocclusion.h" #include "blend.h" #include "bloom.h" @@ -19,7 +20,10 @@ SequenceTemplate::SequenceTemplate(): hdr(false), alpha(false), required_multisample(0), - max_multisample(0) + max_multisample(0), + clear_enabled(false), + clear_depth(1.0f), + clear_stencil(0) { } SequenceTemplate::~SequenceTemplate() @@ -64,6 +68,7 @@ SequenceTemplate::Loader::Loader(SequenceTemplate &t, Collection &c): { add("hdr", &SequenceTemplate::hdr); add("alpha", &SequenceTemplate::alpha); + add("clear", &Loader::clear); add("multisample", &Loader::multisample); add("multisample", &Loader::multisample_range); add("postprocessor", &Loader::postprocessor); @@ -79,6 +84,13 @@ void SequenceTemplate::Loader::postprocessor_loaded() obj.postprocessors.push_back(get_postprocessor_template()); } +void SequenceTemplate::Loader::clear() +{ + ClearLoader ldr(obj); + load_sub_with(ldr); + obj.clear_enabled = true; +} + void SequenceTemplate::Loader::multisample(unsigned samples) { obj.required_multisample = samples; @@ -124,6 +136,30 @@ void SequenceTemplate::Loader::step_with_slot(const string &tag, const string &r } +SequenceTemplate::ClearLoader::ClearLoader(SequenceTemplate &t): + ObjectLoader(t) +{ + add("color", &ClearLoader::color); + add("depth", &ClearLoader::depth); + add("stencil", &ClearLoader::stencil); +} + +void SequenceTemplate::ClearLoader::color(float r, float g, float b, float a) +{ + obj.clear_colors.push_back(Color(r, g, b, a)); +} + +void SequenceTemplate::ClearLoader::depth(float d) +{ + obj.clear_depth = d; +} + +void SequenceTemplate::ClearLoader::stencil(int s) +{ + obj.clear_stencil = s; +} + + SequenceTemplate::Step::Loader::Loader(Step &p): DataFile::CollectionObjectLoader(p, 0) {