]> git.tdb.fi Git - libs/gl.git/blob - source/simplescene.cpp
Add interfaces for culling
[libs/gl.git] / source / simplescene.cpp
1 #include "renderer.h"
2 #include "simplescene.h"
3
4 namespace Msp {
5 namespace GL {
6
7 void SimpleScene::add(const Renderable &r)
8 {
9         renderables.insert(&r);
10 }
11
12 void SimpleScene::remove(const Renderable &r)
13 {
14         renderables.erase(&r);
15 }
16
17 void SimpleScene::setup_frame() const
18 {
19         for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
20                 (*i)->setup_frame();
21 }
22
23 void SimpleScene::finish_frame() const
24 {
25         for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
26                 (*i)->finish_frame();
27 }
28
29 void SimpleScene::render(Renderer &renderer, const Tag &tag) const
30 {
31         setup_cullers(renderer);
32         for(RenderableSet::const_iterator i=renderables.begin(); i!=renderables.end(); ++i)
33                 if(!cull(renderer, **i))
34                         renderer.render(**i, tag);
35 }
36
37 } // namespace GL
38 } // namespace Msp