]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/simplescene.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / render / simplescene.cpp
index fbdb004f9a0e8f8917b5ae42a8a2554d84b54d22..e78b4709b49be463b6c8eed8b8d505e3b73d1323 100644 (file)
@@ -1,4 +1,5 @@
 #include <msp/core/algorithm.h>
+#include "camera.h"
 #include "renderer.h"
 #include "simplescene.h"
 
@@ -7,41 +8,41 @@ namespace GL {
 
 void SimpleScene::add(Renderable &r)
 {
-       auto i = lower_bound(renderables, &r);
-       if(i==renderables.end() || *i!=&r)
-               renderables.insert(i, &r);
+       auto i = lower_bound(content, &r);
+       if(i==content.end() || *i!=&r)
+               content.insert(i, &r);
 }
 
 void SimpleScene::remove(Renderable &r)
 {
-       auto i = find(renderables, &r);
-       if(i!=renderables.end())
-               renderables.erase(i);
+       auto i = find(content, &r);
+       if(i!=content.end())
+               content.erase(i);
 }
 
 void SimpleScene::setup_frame(Renderer &renderer)
 {
-       for(Renderable *r: renderables)
+       for(Renderable *r: content)
                r->setup_frame(renderer);
 }
 
 void SimpleScene::finish_frame()
 {
-       for(Renderable *r: renderables)
+       for(Renderable *r: content)
                r->finish_frame();
 }
 
 void SimpleScene::render(Renderer &renderer, Tag tag) const
 {
-       if(setup_frustum(renderer))
+       if(const Camera *camera = renderer.get_camera())
        {
-               for(Renderable *r: renderables)
-                       if(!frustum_cull(*r))
+               for(Renderable *r: content)
+                       if(camera->is_in_frustum(*r))
                                r->render(renderer, tag);
        }
        else
        {
-               for(Renderable *r: renderables)
+               for(Renderable *r: content)
                        r->render(renderer, tag);
        }
 }