]> git.tdb.fi Git - libs/gl.git/blobdiff - source/simplescene.cpp
Some cleanup for View and WindowView
[libs/gl.git] / source / simplescene.cpp
index 4ccc714b79d7eefbe898a43677c0284a81e0a2ff..d1fd3c1cea2a4c4ad0349fb1a30017cfa2b52920 100644 (file)
@@ -4,13 +4,14 @@
 namespace Msp {
 namespace GL {
 
-void SimpleScene::add(const Renderable &r)
+void SimpleScene::add(Renderable &r)
 {
-       renderables.insert(&r);
-       cache.clear();
+       // Add to cache as well if the cache is valid
+       if(renderables.insert(&r).second && !cache.empty())
+               cache.push_back(&r);
 }
 
-void SimpleScene::remove(const Renderable &r)
+void SimpleScene::remove(Renderable &r)
 {
        renderables.erase(&r);
        cache.clear();
@@ -25,14 +26,14 @@ void SimpleScene::populate_cache() const
        }
 }
 
-void SimpleScene::setup_frame() const
+void SimpleScene::setup_frame(Renderer &renderer)
 {
        populate_cache();
        for(RenderableArray::const_iterator i=cache.begin(); i!=cache.end(); ++i)
-               (*i)->setup_frame();
+               (*i)->setup_frame(renderer);
 }
 
-void SimpleScene::finish_frame() const
+void SimpleScene::finish_frame()
 {
        for(RenderableArray::const_iterator i=cache.begin(); i!=cache.end(); ++i)
                (*i)->finish_frame();