- for(PostProcessorArray::iterator i=postprocessors.begin(); i!=postprocessors.end(); ++i)
- delete i->postprocessor_template;
-}
-
-Resources &SequenceTemplate::get_resources() const
-{
- if(!resources)
- throw logic_error("no resources");
- return *resources;
+ for(const PostProcessor &p: postprocessors)
+ delete p.postprocessor_template;
SequenceTemplate::PostProcessor::PostProcessor(GL::PostProcessor::Template *ppt):
postprocessor_template(ppt)
{ }
SequenceTemplate::PostProcessor::PostProcessor(GL::PostProcessor::Template *ppt):
postprocessor_template(ppt)
{ }
{
add("hdr", &SequenceTemplate::hdr);
add("alpha", &SequenceTemplate::alpha);
{
add("hdr", &SequenceTemplate::hdr);
add("alpha", &SequenceTemplate::alpha);
add("multisample", &Loader::multisample);
add("multisample", &Loader::multisample_range);
add("postprocessor", &Loader::postprocessor);
add("step", &Loader::step);
add("multisample", &Loader::multisample);
add("multisample", &Loader::multisample_range);
add("postprocessor", &Loader::postprocessor);
add("step", &Loader::step);
-void SequenceTemplate::Loader::step(const string &tag, const string &rend)
+void SequenceTemplate::Loader::step(const string &tag)
+{
+ step_with_slot(tag, string());
+}
+
+void SequenceTemplate::Loader::step_with_slot(const string &tag, const string &rend)
- stp.renderable_name = rend;
- if(coll)
- load_sub(stp, *coll);
- else
- load_sub(stp);
+ stp.slot_name = rend;
+ Step::Loader ldr(stp, *coll);
+ ldr.set_inline_base_name(format("%s/%d.step", get_source(), obj.steps.size()));
+ load_sub_with(ldr);
-SequenceTemplate::Step::Loader::Loader(Step &p):
- DataFile::CollectionObjectLoader<Step>(p, 0)
+SequenceTemplate::ClearLoader::ClearLoader(SequenceTemplate &t):
+ ObjectLoader<SequenceTemplate>(t)
+ add("color", &ClearLoader::color);
+ add("depth", &ClearLoader::depth);
+ add("stencil", &ClearLoader::stencil);
-SequenceTemplate::Step::Loader::Loader(Step &p, Collection &c):
- DataFile::CollectionObjectLoader<Step>(p, &c)
+void SequenceTemplate::ClearLoader::color(float r, float g, float b, float a)
-void SequenceTemplate::Step::Loader::init()
+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, Collection &c):
+ DataFile::CollectionObjectLoader<Step>(p, &c)
add("lighting", &Loader::lighting);
add("lighting", &Loader::lighting_inline);
add("lighting", &Loader::lighting);
add("lighting", &Loader::lighting_inline);
+ add("object", &Loader::object);
+ add("scene", &Loader::scene);
+ add("stencil_test", &Loader::stencil_test);
}
void SequenceTemplate::Step::Loader::lighting(const string &name)
{
obj.lighting = &get_collection().get<Lighting>(name);
}
void SequenceTemplate::Step::Loader::lighting(const string &name)
{
obj.lighting = &get_collection().get<Lighting>(name);
-/*void SequenceTemplate::Step::Loader::scene(const string &name)
+void SequenceTemplate::Step::Loader::object(const string &name)
+{
+ obj.default_renderable = &get_collection().get<GL::Object>(name);
+}
+
+void SequenceTemplate::Step::Loader::scene(const string &name)
- obj.default_renderable = get_collection().get<Scene>(name);
-}*/
+ obj.default_renderable = &get_collection().get<Scene>(name);
+}
+
+void SequenceTemplate::Step::Loader::stencil_test()
+{
+ load_sub(obj.stencil_test);
+}