]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export.py
Refactor scene export to use inline scenes instead of a wrapper scene
[libs/gl.git] / blender / io_mspgl / export.py
index cf4312d2631993aeb37d7e4d9fd925c70952ff1f..6db2c81c6cbb9f718ebec222227182e9e8d7e96b 100644 (file)
@@ -116,6 +116,15 @@ class ProjectExporter:
                        if s.camera:
                                all_objects.append(s.camera)
 
+               scene_queue = list(scenes.values())
+               ordered_scenes = []
+               while scene_queue:
+                       s = scene_queue.pop(0)
+                       if not s.background_set or s.background_set in ordered_scenes:
+                               ordered_scenes.append(s)
+                       else:
+                               scene_queue.append(s)
+
                from .util import make_unique
                all_objects = make_unique(all_objects)
 
@@ -125,7 +134,7 @@ class ProjectExporter:
 
                resources = {}
                dummy_res = data_exporter.export_resources(context, all_objects, resources, None, progress)
-               for s in scenes.values():
+               for s in ordered_scenes:
                        scene_name = s.name+".scene"
                        if scene_name not in resources:
                                scene_res = scene_exporter.export_scene(s, resources)