-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2010-2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_GL_SIMPLESCENE_H_
#define MSP_GL_SIMPLESCENE_H_
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;
};