using namespace Msp;
Stage::Stage():
- pipeline(0)
+ pipeline(0),
+ last_view(0)
{ }
Stage::~Stage()
delete pipeline;
}
+void Stage::add_things(Demo::ThingMap &things, const string &prefix)
+{
+ things[prefix+"camera"] = static_cast<GL::Placeable *>(&camera);
+}
+
void Stage::set_camera(const GL::Camera &c)
{
camera.set_object_matrix(c.get_object_matrix());
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);
}