X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fzsortedscene.h;h=f268f5297e3b279e064173c71f938494ade5431a;hb=54e758597f72544719119e4660af742628645ff6;hp=cb21061bae301db5f7851c54130112d29e04c011;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/render/zsortedscene.h b/source/render/zsortedscene.h index cb21061b..f268f529 100644 --- a/source/render/zsortedscene.h +++ b/source/render/zsortedscene.h @@ -10,15 +10,15 @@ namespace GL { enum SortOrder { - FRONT_TO_BACK, - BACK_TO_FRONT + FRONT_TO_BACK = 0, + BACK_TO_FRONT = 1 }; enum DepthReference { - CLOSEST, - CENTER, - FURTHEST + CLOSEST = 0, + CENTER = 1, + FURTHEST = 2 }; /** @@ -27,6 +27,9 @@ renderables to have a matrix. */ class ZSortedScene: public Scene { +public: + using Scene::Loader; + private: struct SortedRenderable { @@ -39,17 +42,12 @@ private: bool operator<(const SortedRenderable &o) const { return depth RenderableSet; - typedef std::vector SortedArray; - - RenderableSet renderables; - SortOrder order; - DepthReference reference; - mutable SortedArray sorted_cache; + std::set renderables; + SortOrder order = BACK_TO_FRONT; + DepthReference reference = FURTHEST; + mutable std::vector sorted_cache; public: - ZSortedScene(); - virtual void add(Renderable &); virtual void remove(Renderable &); @@ -66,7 +64,7 @@ public: virtual void setup_frame(Renderer &); virtual void finish_frame(); - virtual void render(Renderer &, const Tag & = Tag()) const; + virtual void render(Renderer &, Tag = Tag()) const; }; } // namespace GL