#include <msp/core/maputils.h>
#include <msp/datafile/collection.h>
+#include <msp/strings/format.h>
#include "ambientocclusion.h"
#include "blend.h"
#include "bloom.h"
namespace Msp {
namespace GL {
-SequenceTemplate::SequenceTemplate():
- hdr(false),
- alpha(false),
- required_multisample(0),
- max_multisample(0),
- clear_enabled(false),
- clear_depth(1.0f),
- clear_stencil(0)
-{ }
-
SequenceTemplate::~SequenceTemplate()
{
for(const PostProcessor &p: postprocessors)
}
-SequenceTemplate::Step::~Step()
-{ }
-
-
SequenceTemplate::PostProcessor::PostProcessor(GL::PostProcessor::Template *ppt):
postprocessor_template(ppt)
{ }
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<Step>(p, 0)
-{
- init();
-}
-
SequenceTemplate::Step::Loader::Loader(Step &p, Collection &c):
DataFile::CollectionObjectLoader<Step>(p, &c)
{
- init();
-}
-
-void SequenceTemplate::Step::Loader::init()
-{
- add("blend", &Loader::blend);
- add("blend", &Loader::blend_factors);
add("depth_test", &Loader::depth_test);
add("depth_test", &Loader::depth_compare);
add("lighting", &Loader::lighting);
inline_base_name = n;
}
-void SequenceTemplate::Step::Loader::blend()
-{
- load_sub(obj.blend);
-}
-
-void SequenceTemplate::Step::Loader::blend_factors(BlendFactor src, BlendFactor dest)
-{
- obj.blend = Blend(src, dest);
-}
-
void SequenceTemplate::Step::Loader::depth_test()
{
load_sub(obj.depth_test);
void SequenceTemplate::Step::Loader::lighting_inline()
{
RefPtr<Lighting> lightn = new Lighting;
- load_sub(*lightn);
+ load_sub(*lightn, get_collection());
get_collection().add(inline_base_name+".lightn", lightn.get());
obj.lighting = lightn.release();
}