]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Route rendering calls through Renderer and add an exclusion system
[libs/gl.git] / source / renderer.cpp
index fd4dc576d09ba12c526a38d0638f9f6437693a25..6734edc4bd20458be56563bdddfd57a2589ab203 100644 (file)
@@ -5,6 +5,7 @@
 #include "material.h"
 #include "program.h"
 #include "programdata.h"
+#include "renderable.h"
 #include "renderer.h"
 #include "texture.h"
 #include "texturing.h"
@@ -132,6 +133,22 @@ void Renderer::escape()
        Buffer::unbind_from(ELEMENT_ARRAY_BUFFER);
 }
 
+void Renderer::exclude(const Renderable &renderable)
+{
+       excluded.insert(&renderable);
+}
+
+void Renderer::include(const Renderable &renderable)
+{
+       excluded.erase(&renderable);
+}
+
+void Renderer::render(const Renderable &renderable, const Tag &tag)
+{
+       if(!excluded.count(&renderable))
+               renderable.render(*this, tag);
+}
+
 void Renderer::draw(const Batch &batch)
 {
        if(!vertex_array)