]> git.tdb.fi Git - libs/gl.git/blobdiff - source/mesh.cpp
Add a rendering supervisor class
[libs/gl.git] / source / mesh.cpp
index a1930d75d124bc35f9d6c40374b9cb7b2f64cb6a..05be2c3745b8562b32f9c9b5a69e722fb4af5058 100644 (file)
@@ -1,13 +1,14 @@
 /* $Id$
 
 This file is part of libmspgl
-Copyright © 2007-2010  Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2011  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
 #include "buffer.h"
 #include "extension.h"
 #include "mesh.h"
+#include "renderer.h"
 
 using namespace std;
 
@@ -107,6 +108,15 @@ void Mesh::draw() const
                Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
 }
 
+void Mesh::draw(Renderer &renderer) const
+{
+       renderer.set_vertex_array(&vertices);
+       renderer.set_element_buffer(ibuf);
+
+       for(list<Batch>::const_iterator i=batches.begin(); i!=batches.end(); ++i)
+               renderer.draw(*i);
+}
+
 
 Mesh::Loader::Loader(Mesh &m):
        DataFile::ObjectLoader<Mesh>(m)