+#include <msp/gl/renderer.h>
+#include "slot.h"
+
+namespace Msp {
+namespace GL {
+
+Slot::Slot():
+ renderable(0)
+{ }
+
+void Slot::set(Renderable *r)
+{
+ renderable = r;
+}
+
+const Matrix *Slot::get_matrix() const
+{
+ return renderable ? renderable->get_matrix() : 0;
+}
+
+const Geometry::BoundingSphere<float, 3> *Slot::get_bounding_sphere() const
+{
+ return renderable ? renderable->get_bounding_sphere() : 0;
+}
+
+void Slot::setup_frame(Renderer &renderer)
+{
+ if(renderable)
+ renderable->setup_frame(renderer);
+}
+
+void Slot::finish_frame()
+{
+ if(renderable)
+ renderable->finish_frame();
+}
+
+void Slot::render(Renderer &renderer, const Tag &tag) const
+{
+ if(renderable)
+ renderer.render(*renderable, tag);
+}
+
+} // namespace GL
+} // namespace Msp