class Renderable;
class Renderer;
+/**
+Base class and interface for cullers. Scenes can use cullers to avoid
+rendering things that are not visible.
+*/
class Culler
{
protected:
public:
virtual ~Culler() { }
+ /** Called once at the start of each rendering pass. */
virtual void setup_pass(const Renderer &) { };
+ /** Decides if a renderable should be culled. If this returns true, the
+ renderable is skipped. */
virtual bool cull(const Renderer &, const Renderable &) const = 0;
};