*/
class OccludedScene: public Scene
{
+public:
+ using Scene::Loader;
+
private:
struct OccludedRenderable
{
typedef std::set<Renderable *> RenderableSet;
typedef std::vector<OccludedRenderable> OccludedArray;
- Mesh bounding_mesh;
- Program bounding_shader;
+ const Mesh &bounding_mesh;
+ const Program &bounding_shader;
RenderableSet renderables;
float occluder_min_size;
mutable OccludedArray occluded_cache;
mutable bool cache_dirty;
public:
- OccludedScene();
+ OccludedScene(Resources &);
~OccludedScene();
virtual void add(Renderable &);
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