- Sequence::Step &step = sequence.add_step(s.tag, *renderable);
- step.set_blend(s.blend);
+ for(const SequenceTemplate::Renderable *s: sequences)
+ {
+ SequenceBuilder bld(*s->sequence_template);
+ for(const auto &kvp: s->sequence_renderables)
+ if(Renderable *r = get_item(final_renderables, kvp.second))
+ bld.set_renderable(kvp.first, *r);
+ bld.build(*static_cast<Sequence *>(get_item(final_renderables, s->slot_name)));
+ }
+
+ sequence.set_clear_enabled(tmpl.is_clear_enabled());
+ if(tmpl.is_clear_enabled())
+ {
+ sequence.set_clear_colors(tmpl.get_clear_colors());
+ sequence.set_clear_depth(tmpl.get_clear_depth());
+ sequence.set_clear_stencil(tmpl.get_clear_stencil());
+ }
+
+ for(const SequenceTemplate::Step &s: tmpl.get_steps())
+ {
+ // Existence is already ensured above
+ Renderable &renderable = *get_item(final_renderables, s.renderable_name);
+ Sequence::Step &step = sequence.add_step(s.tag, renderable);