1 #include <msp/gl/view.h>
17 void Stage::add_postprocessor(GL::PostProcessor &pp)
19 pipeline->add_postprocessor(pp);
22 void Stage::set_camera(const GL::Camera &c)
24 camera.set_object_matrix(c.get_object_matrix());
25 camera.set_up_direction(c.get_up_direction());
26 camera.set_field_of_view(c.get_field_of_view());
27 camera.set_depth_clip(c.get_near_clip(), c.get_far_clip());
31 Stage::UseInView::UseInView():
36 Stage::UseInView::UseInView(GL::View &v, Stage &s):
41 void Stage::UseInView::validate() const
44 throw logic_error("null view");
46 throw logic_error("null stage");
49 void Stage::UseInView::start(float, float)
51 view->set_camera(&stage->camera);
52 view->set_content(stage->pipeline);
56 Stage::SetCamera::SetCamera():
61 Stage::SetCamera::SetCamera(Stage &s, const GL::Camera &c):
66 void Stage::SetCamera::validate() const
69 throw logic_error("null stage");
71 throw logic_error("null camera");
74 void Stage::SetCamera::start(float, float)
76 stage->set_camera(*camera);
80 Stage::UseInView::Loader::Loader(UseInView &u, Demo &d):
81 DataFile::DerivedObjectLoader<UseInView, Action::Loader>(u, d)
83 add("stage", &Loader::stage);
84 add("view", &Loader::view);
87 void Stage::UseInView::Loader::stage(const string &n)
89 obj.stage = &demo.get_thing<Stage>(n);
92 void Stage::UseInView::Loader::view(const string &n)
94 obj.view = &demo.get_thing<GL::View>(n);
98 Stage::SetCamera::Loader::Loader(SetCamera &s, Demo &d):
99 DataFile::DerivedObjectLoader<SetCamera, Action::Loader>(s, d)
101 add("camera", &Loader::camera);
102 add("stage", &Loader::stage);
105 void Stage::SetCamera::Loader::stage(const string &n)
107 obj.stage = &demo.get_thing<Stage>(n);
110 void Stage::SetCamera::Loader::camera(const string &n)
112 obj.camera = &demo.get_resources().get<GL::Camera>(n);