X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Foccludedscene.cpp;fp=source%2Frender%2Foccludedscene.cpp;h=bfe17349fd13ee836234c9297ec5476e6039d9f7;hb=84e0e55710123e54617d342df852007f8b60af24;hp=5d85b5d5bf762d43f056d114e383cd613ef67198;hpb=0fa506250545acb83bc86f1734826544d6f1eda6;p=libs%2Fgl.git diff --git a/source/render/occludedscene.cpp b/source/render/occludedscene.cpp index 5d85b5d5..bfe17349 100644 --- a/source/render/occludedscene.cpp +++ b/source/render/occludedscene.cpp @@ -1,4 +1,4 @@ -#include +#include #include "camera.h" #include "mesh.h" #include "occludedscene.h" @@ -21,14 +21,22 @@ OccludedScene::OccludedScene(): void OccludedScene::add(Renderable &r) { - renderables.insert(&r); - cache_dirty = true; + auto i = lower_bound(renderables, &r); + if(i==renderables.end() || *i!=&r) + { + renderables.insert(i, &r); + cache_dirty = true; + } } void OccludedScene::remove(Renderable &r) { - renderables.erase(&r); - cache_dirty = true; + auto i = lower_bound(renderables, &r); + if(i!=renderables.end() && *i==&r) + { + renderables.erase(i); + cache_dirty = true; + } } void OccludedScene::populate_cache() const