]> git.tdb.fi Git - libs/gl.git/blobdiff - source/zsortedscene.h
Support the sample sampling qualifier
[libs/gl.git] / source / zsortedscene.h
index b032cbcdf01f08e228846aebb32b3c5b96c60d37..cb21061bae301db5f7851c54130112d29e04c011 100644 (file)
@@ -30,16 +30,16 @@ class ZSortedScene: public Scene
 private:
        struct SortedRenderable
        {
-               const Renderable *renderable;
+               Renderable *renderable;
                bool in_frustum;
                float depth;
 
-               SortedRenderable(const Renderable *);
+               SortedRenderable(Renderable *);
 
                bool operator<(const SortedRenderable &o) const { return depth<o.depth; }
        };
 
-       typedef std::set<const Renderable *> RenderableSet;
+       typedef std::set<Renderable *> RenderableSet;
        typedef std::vector<SortedRenderable> SortedArray;
 
        RenderableSet renderables;
@@ -50,8 +50,8 @@ private:
 public:
        ZSortedScene();
 
-       virtual void add(const Renderable &);
-       virtual void remove(const Renderable &);
+       virtual void add(Renderable &);
+       virtual void remove(Renderable &);
 
        /// Sets the sort order.  Default is back to front.
        void set_order(SortOrder);
@@ -59,7 +59,14 @@ public:
        /// Sets the reference point for sorting.  Default is furthest from camera.
        void set_reference(DepthReference);
 
-       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