X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fobject.h;h=e84bc9cf707d5f7c1e0ef10dea9a5c255100a647;hp=4655695b355583d40598a7186eeab915c497d016;hb=25c81b4953dd38993250321b9407ce8b0139cbeb;hpb=d51a234320449909eb34c802faa1f0c516ef70a0 diff --git a/source/object.h b/source/object.h index 4655695b..e84bc9cf 100644 --- a/source/object.h +++ b/source/object.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of libmspgl -Copyright © 2007-2008, 2010 Mikko Rasa, Mikkosoft Productions +Copyright © 2007-2008, 2010-2011 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ @@ -65,33 +65,17 @@ public: */ virtual void render(const Tag &tag = Tag()) const; + virtual void render(Renderer &, const Tag & = Tag()) const; + /** Renders the object with an instance. The instance's hook functions are called before and after drawing the mesh. A tag may also be given to render a non-default pass. */ - virtual void render(const ObjectInstance &, const Tag &tag = Tag()) const; + virtual void render(Renderer &, const ObjectInstance &, const Tag & = Tag()) const; - /** - Renders multiple instances of the object in one go. This may improve - performance, as the object-specific render setup only has to be done once. - Each instance's hook functions will be called before and after drawing the - mesh. - */ - template - void render(Iter begin, Iter end, const Tag &tag = Tag()) const - { - const RenderPass *pass = get_pass(tag); - if(!pass) - return; - - Bind bind(pass); - for(Iter i=begin; i!=end; ++i) - render_instance(**i, tag); - } private: const RenderPass *get_pass(const Tag &) const; - void render_instance(const ObjectInstance &, const Tag &) const; }; } // namespace GL