using namespace Msp;
Stage::Stage():
- pipeline(0)
+ pipeline(0),
+ last_view(0)
{ }
Stage::~Stage()
delete pipeline;
}
-void Stage::add_postprocessor(GL::PostProcessor &pp)
+void Stage::add_things(Demo::ThingMap &things, const string &prefix)
{
- pipeline->add_postprocessor(pp);
+ things[prefix+"camera"] = static_cast<GL::Placeable *>(&camera);
}
void Stage::set_camera(const GL::Camera &c)
void Stage::UseInView::start(float, float)
{
+ if(!stage->pipeline || view!=stage->last_view)
+ {
+ stage->create_pipeline(*view);
+ if(!stage->pipeline)
+ throw logic_error("null pipeline");
+ stage->last_view = view;
+ }
+
view->set_camera(&stage->camera);
view->set_content(stage->pipeline);
}