From: Mikko Rasa Date: Wed, 14 Apr 2021 15:35:38 +0000 (+0300) Subject: Support loading sequences in the viewer X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=75870f0241d874fd4f60ea73bd55b32452b72fc5;p=libs%2Fgl.git Support loading sequences in the viewer --- diff --git a/tools/viewer.cpp b/tools/viewer.cpp index ffdc4ec6..674fbf16 100644 --- a/tools/viewer.cpp +++ b/tools/viewer.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include #include @@ -65,7 +67,7 @@ private: Input::Mouse mouse; Resources resources; GL::WindowView view; - GL::Sequence sequence; + GL::Sequence *sequence; GL::Renderable *renderable; GL::AnimatedObject *anim_object; GL::AnimationPlayer *anim_player; @@ -121,7 +123,7 @@ Viewer::Viewer(int argc, char **argv): gl_ctx(window, opts.gl_opts), mouse(window), view(window, gl_ctx), - sequence(view), + sequence(0), renderable(0), anim_object(0), anim_player(0), @@ -186,6 +188,12 @@ Viewer::Viewer(int argc, char **argv): else renderable = &resources.get(opts.renderable_name); } + else if(ext==".seq") + { + GL::SequenceTemplate *tmpl = load(opts.renderable_name); + GL::SequenceBuilder bld(*tmpl); + sequence = bld.build(view); + } else throw usage_error("Unknown renderable type"); @@ -212,12 +220,16 @@ Viewer::Viewer(int argc, char **argv): camera.set_up_direction(GL::Vector3(0, 0, 1)); update_camera(); - GL::Sequence::Step &step = sequence.add_step(0, *renderable); - step.set_lighting(&lighting); - step.set_depth_test(&GL::DepthTest::lequal()); - step.set_blend(&GL::Blend::alpha()); + if(!sequence) + { + sequence = new GL::Sequence(view); + GL::Sequence::Step &step = sequence->add_step(0, *renderable); + step.set_lighting(&lighting); + step.set_depth_test(&GL::DepthTest::lequal()); + step.set_blend(&GL::Blend::alpha()); + } - view.set_content(&sequence); + view.set_content(sequence); view.set_camera(&camera); } @@ -239,6 +251,7 @@ Viewer::~Viewer() { delete anim_player; delete anim_object; + delete sequence; } int Viewer::main()