X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Foccludedscene.h;h=2898bb3ff92032c703c916232ae7459845c0fe8c;hp=3f8ca76ce4dcbfe40dc3edaa5553f92785640acb;hb=9f5f027d1c93e541a12b8e4c04bd25b11edbe132;hpb=b160f64ab6da260bad06a4e5f5bfed243e2cdc24 diff --git a/source/occludedscene.h b/source/occludedscene.h index 3f8ca76c..2898bb3f 100644 --- a/source/occludedscene.h +++ b/source/occludedscene.h @@ -19,7 +19,7 @@ class OccludedScene: public Scene private: struct OccludedRenderable { - const Renderable *renderable; + Renderable *renderable; const Geometry::BoundingSphere *bounding_sphere; bool in_frustum; bool occluder; @@ -28,7 +28,7 @@ private: OccludedRenderable(); }; - typedef std::set RenderableSet; + typedef std::set RenderableSet; typedef std::vector OccludedArray; Mesh bounding_mesh; @@ -42,10 +42,17 @@ public: OccludedScene(); ~OccludedScene(); - virtual void add(const Renderable &); - virtual void remove(const Renderable &); + virtual void add(Renderable &); + virtual void remove(Renderable &); - virtual void render(Renderer &, const Tag &) const; +private: + void populate_cache() const; + +public: + virtual void setup_frame(Renderer &); + virtual void finish_frame(); + + virtual void render(Renderer &, const Tag & = Tag()) const; }; } // namespace GL