]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/scene.cpp
Support inline scenes within other scenes
[libs/gl.git] / source / render / scene.cpp
index 4b7aee1a8574499b59c169b976fd34cf7dc22feb..0f7737227e8da37c4ba69e0260d99f4e893b87c0 100644 (file)
@@ -98,6 +98,7 @@ Scene::Loader::Loader(Scene &s, Collection &c, ContentMap *m):
        add("object", &Loader::object);
        add("object", &Loader::object_tagged);
        add("scene", &Loader::scene);
+       add("scene", &Loader::scene_inline);
 }
 
 void Scene::Loader::object(const string &n)
@@ -120,5 +121,13 @@ void Scene::Loader::scene(const string &n)
        obj.add(get_collection().get<Scene>(n));
 }
 
+void Scene::Loader::scene_inline()
+{
+       GenericLoader ldr(get_collection());
+       load_sub_with(ldr);
+       Scene *scene = ldr.store_object(get_collection(), format("_scene_%d.scene", ++inline_counter));
+       obj.add(*scene);
+}
+
 } // namespace GL
 } // namespace Msp