]> git.tdb.fi Git - libs/gl.git/blobdiff - source/simplescene.cpp
Further tweak frustum culling to be more efficient
[libs/gl.git] / source / simplescene.cpp
index f866f678280b2b4b2786aa2f5920fb9b816472fc..73d08de2322f2194864490bf8b0bb7022678a654 100644 (file)
@@ -28,8 +28,17 @@ void SimpleScene::finish_frame() const
 
 void SimpleScene::render(Renderer &renderer, const Tag &tag) const
 {
-       for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
-               renderer.render(**i, tag);
+       if(setup_frustum(renderer))
+       {
+               for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
+                       if(!frustum_cull(**i))
+                               renderer.render(**i, tag);
+       }
+       else
+       {
+               for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
+                       renderer.render(**i, tag);
+       }
 }
 
 } // namespace GL