void Scene::render(const Tag &tag) const
{
- for(set<const Renderable *>::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
+ for(set<const Renderable *, Compare>::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
if((*i)->has_pass(tag))
(*i)->render(tag);
}
+
+bool Scene::Compare::operator()(const Renderable *a, const Renderable *b) const
+{
+ if(a->get_order()!=b->get_order())
+ return a->get_order()<b->get_order();
+ return a<b;
+}
+
} // namespace GL
} // namespace Msp