]> git.tdb.fi Git - libs/gl.git/blobdiff - source/object.cpp
Require mspgbase now that Image was moved there
[libs/gl.git] / source / object.cpp
index f710145a08cb23913aa6db794ca878bb2b6649ef..78f445577caa54209044e3db4dc40dd1e33b5cec 100644 (file)
@@ -59,11 +59,6 @@ void Object::render(const ObjectInstance &inst, const Tag &tag) const
        render(get_pass(tag), &inst);
 }
 
-void Object::render(const list<const ObjectInstance *> &insts, const Tag &tag) const
-{
-       render(get_pass(tag), insts);
-}
-
 void Object::setup_render(const ObjectPass &pass) const
 {
        if(!meshes[0])
@@ -105,36 +100,20 @@ void Object::render(const ObjectPass &pass, const ObjectInstance *inst) const
 {
        setup_render(pass);
 
-       unsigned lod=0;
-       if(inst)
-       {
-               inst->setup_render(pass);
-               lod=min(inst->get_level_of_detail(), meshes.size()-1);
-       }
-
-       meshes[lod]->draw();
-
        if(inst)
-               inst->finish_render(pass);
+               render_instance(pass, *inst);
+       else
+               meshes[0]->draw();
 
        finish_render(pass);
 }
 
-void Object::render(const ObjectPass &pass, const list<const ObjectInstance *> &insts) const
+void Object::render_instance(const ObjectPass &pass, const ObjectInstance &inst) const
 {
-       setup_render(pass);
-
-       for(list<const ObjectInstance *>::const_iterator i=insts.begin(); i!=insts.end(); ++i)
-       {
-               (*i)->setup_render(pass);
-
-               unsigned lod=min((*i)->get_level_of_detail(), meshes.size()-1);
-               meshes[lod]->draw();
-
-               (*i)->finish_render(pass);
-       }
-
-       finish_render(pass);
+       inst.setup_render(pass);
+       unsigned lod=min(inst.get_level_of_detail(), meshes.size()-1);
+       meshes[lod]->draw();
+       inst.finish_render(pass);
 }