X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsimplescene.h;h=8b91150ce2199e43142f4d60573718e32a72fc0c;hb=d031a80ea06e3ccd01041e9c6024fa62adf25160;hp=deba4d5f8877b872aa6d3be5dcc5cb7eecf7c0e1;hpb=c87860db3b23a98eda1adfe59acddffdb6eb8420;p=libs%2Fgl.git diff --git a/source/simplescene.h b/source/simplescene.h index deba4d5f..8b91150c 100644 --- a/source/simplescene.h +++ b/source/simplescene.h @@ -8,19 +8,25 @@ namespace Msp { namespace GL { /** -The simplest possible Scene. Rendering order is unspecified. +A simple yet efficient scene. Rendering order is unspecified. */ class SimpleScene: public Scene { -protected: - typedef std::set RenderableSet; +private: + typedef std::set RenderableSet; + typedef std::vector RenderableArray; RenderableSet renderables; + mutable RenderableArray cache; public: - 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() const; virtual void finish_frame() const;