]> git.tdb.fi Git - libs/gl.git/blobdiff - source/occludedscene.h
Refresh lighting and culling uniforms if the camera changes in pop_state
[libs/gl.git] / source / occludedscene.h
index 3f8ca76ce4dcbfe40dc3edaa5553f92785640acb..6f5e23bd0d175c4572bb67df608d43328444ebd3 100644 (file)
@@ -19,7 +19,7 @@ class OccludedScene: public Scene
 private:
        struct OccludedRenderable
        {
-               const Renderable *renderable;
+               Renderable *renderable;
                const Geometry::BoundingSphere<float, 3> *bounding_sphere;
                bool in_frustum;
                bool occluder;
@@ -28,7 +28,7 @@ private:
                OccludedRenderable();
        };
 
-       typedef std::set<const Renderable *> RenderableSet;
+       typedef std::set<Renderable *> RenderableSet;
        typedef std::vector<OccludedRenderable> OccludedArray;
 
        Mesh bounding_mesh;
@@ -42,8 +42,15 @@ public:
        OccludedScene();
        ~OccludedScene();
 
-       virtual void add(const Renderable &);
-       virtual void remove(const Renderable &);
+       virtual void add(Renderable &);
+       virtual void remove(Renderable &);
+
+private:
+       void populate_cache() const;
+
+public:
+       virtual void setup_frame(Renderer &);
+       virtual void finish_frame();
 
        virtual void render(Renderer &, const Tag &) const;
 };