X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Foccludedscene.h;h=4d56db7a1ff6c565585a2dbd7d006a206d6c46d0;hb=84e0e55710123e54617d342df852007f8b60af24;hp=f11c707e6781c0ea656a7676e733e3981209ea41;hpb=93448d16e72e38afbaecbccf6fdedd46d6a82a73;p=libs%2Fgl.git diff --git a/source/render/occludedscene.h b/source/render/occludedscene.h index f11c707e..4d56db7a 100644 --- a/source/render/occludedscene.h +++ b/source/render/occludedscene.h @@ -5,14 +5,15 @@ #include #include "blend.h" #include "depthtest.h" -#include "mesh.h" -#include "program.h" #include "query.h" #include "scene.h" namespace Msp { namespace GL { +class Mesh; +class Program; + /** A scene that performs occlusion queries on renderables to skip those that are entirely occluded by others. @@ -25,23 +26,21 @@ public: private: struct OccludedRenderable { - Renderable *renderable; - const Geometry::BoundingSphere *bounding_sphere; - bool in_frustum; - bool occluder; - - OccludedRenderable(); + Renderable *renderable = 0; + const Geometry::BoundingSphere *bounding_sphere = 0; + bool in_frustum = false; + bool occluder = false; }; const Mesh &bounding_mesh; const Program &bounding_shader; Blend no_color_write; - DepthTest no_depth_write; - std::set renderables; - float occluder_min_size; + DepthTest no_depth_write = { LEQUAL, false }; + std::vector renderables; + float occluder_min_size = 0.25f; mutable QueryPool queries; mutable std::vector occluded_cache; - mutable bool cache_dirty; + mutable bool cache_dirty = false; public: OccludedScene();