X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbuilders%2Fsequencetemplate.cpp;h=e8e451fc9a54d78a5b6d1d1bfc415a64ffef90be;hp=83c4b7671f75234b42125b30509dff9e1bde2371;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hpb=ff8a8bfa114a690b7b25d9503bb5ed811d6aeca9 diff --git a/source/builders/sequencetemplate.cpp b/source/builders/sequencetemplate.cpp index 83c4b767..e8e451fc 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" @@ -15,14 +16,6 @@ using namespace std; namespace Msp { namespace GL { -SequenceTemplate::SequenceTemplate(): - hdr(false), - alpha(false), - required_multisample(0), - max_multisample(0), - clear_enabled(false) -{ } - SequenceTemplate::~SequenceTemplate() { for(const PostProcessor &p: postprocessors) @@ -45,10 +38,6 @@ SequenceTemplate::PostProcessorRegistry &SequenceTemplate::get_postprocessor_reg } -SequenceTemplate::Step::~Step() -{ } - - SequenceTemplate::PostProcessor::PostProcessor(GL::PostProcessor::Template *ppt): postprocessor_template(ppt) { } @@ -83,6 +72,8 @@ void SequenceTemplate::Loader::postprocessor_loaded() void SequenceTemplate::Loader::clear() { + ClearLoader ldr(obj); + load_sub_with(ldr); obj.clear_enabled = true; } @@ -118,32 +109,40 @@ void SequenceTemplate::Loader::step_with_slot(const string &tag, const string &r Step stp; stp.tag = tag; stp.slot_name = rend; - if(coll) - { - Step::Loader ldr(stp, *coll); - ldr.set_inline_base_name(format("%s/%d.step", get_source(), obj.steps.size())); - load_sub_with(ldr); - } - else - load_sub(stp); + Step::Loader ldr(stp, *coll); + ldr.set_inline_base_name(format("%s/%d.step", get_source(), obj.steps.size())); + load_sub_with(ldr); obj.steps.push_back(stp); } -SequenceTemplate::Step::Loader::Loader(Step &p): - DataFile::CollectionObjectLoader(p, 0) +SequenceTemplate::ClearLoader::ClearLoader(SequenceTemplate &t): + ObjectLoader(t) { - init(); + add("color", &ClearLoader::color); + add("depth", &ClearLoader::depth); + add("stencil", &ClearLoader::stencil); } -SequenceTemplate::Step::Loader::Loader(Step &p, Collection &c): - DataFile::CollectionObjectLoader(p, &c) +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) { - init(); + obj.clear_stencil = s; } -void SequenceTemplate::Step::Loader::init() + +SequenceTemplate::Step::Loader::Loader(Step &p, Collection &c): + DataFile::CollectionObjectLoader(p, &c) { add("blend", &Loader::blend); add("blend", &Loader::blend_factors); @@ -184,7 +183,7 @@ void SequenceTemplate::Step::Loader::depth_compare(Predicate c) void SequenceTemplate::Step::Loader::lighting_inline() { RefPtr lightn = new Lighting; - load_sub(*lightn); + load_sub(*lightn, get_collection()); get_collection().add(inline_base_name+".lightn", lightn.get()); obj.lighting = lightn.release(); }