private:
struct OccludedRenderable
{
- const Renderable *renderable;
+ Renderable *renderable;
const Geometry::BoundingSphere<float, 3> *bounding_sphere;
bool in_frustum;
bool occluder;
OccludedRenderable();
};
- typedef std::set<const Renderable *> RenderableSet;
+ typedef std::set<Renderable *> RenderableSet;
typedef std::vector<OccludedRenderable> OccludedArray;
Mesh bounding_mesh;
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