namespace GL {
/**
-The simplest possible Scene. Rendering order is unspecified.
+A simple yet efficient scene. Rendering order is unspecified.
*/
class SimpleScene: public Scene
{
private:
typedef std::set<const Renderable *> RenderableSet;
+ typedef std::vector<const Renderable *> RenderableArray;
RenderableSet renderables;
+ mutable RenderableArray cache;
public:
virtual void add(const Renderable &);
virtual void remove(const Renderable &);
+private:
+ void populate_cache() const;
+
+public:
+ virtual void setup_frame() const;
+ virtual void finish_frame() const;
+
using Scene::render;
virtual void render(Renderer &, const Tag & = Tag()) const;
};