]> git.tdb.fi Git - libs/gl.git/blobdiff - tools/viewer.cpp
New way of loading scenes in the viewer
[libs/gl.git] / tools / viewer.cpp
index e19353c8adbf0c4e52b7fc90c701ddc715caa837..4ae9c87b26c7483bdb1ad7c4fd2b1637d5d80aa0 100644 (file)
@@ -175,9 +175,16 @@ Viewer::Viewer(int argc, char **argv):
                renderable = load<GL::Object>(opts.renderable_name);
        else if(ext==".scene")
        {
-               GL::SimpleScene *scene = new GL::SimpleScene;
-               DataFile::load(*scene, opts.renderable_name, resources);
-               renderable = scene;
+               if(FS::exists(opts.renderable_name))
+               {
+                       GL::Scene::GenericLoader ldr(resources);
+                       IO::BufferedFile in(opts.renderable_name);
+                       DataFile::Parser parser(in, opts.renderable_name);
+                       ldr.load(parser);
+                       renderable = ldr.get_scene();
+               }
+               else
+                       renderable = &resources.get<GL::Scene>(opts.renderable_name);
        }
        else
                throw usage_error("Unknown renderable type");