[Bf-blender-cvs] [866b326] render-layers: Fix write of nested LayerCollections (and DNA cleanup)
Dalai Felinto
noreply at git.blender.org
Tue Dec 6 16:37:19 CET 2016
Commit: 866b3268a5e8d07c6b44d75817b5a267e8d1ef73
Author: Dalai Felinto
Date: Tue Dec 6 16:20:36 2016 +0100
Branches: render-layers
https://developer.blender.org/rB866b3268a5e8d07c6b44d75817b5a267e8d1ef73
Fix write of nested LayerCollections (and DNA cleanup)
===================================================================
M source/blender/blenloader/intern/readfile.c
M source/blender/makesdna/DNA_layer_types.h
===================================================================
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 4e9b74f..3313245 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5523,6 +5523,7 @@ static void direct_link_layer_collections(FileData *fd, ListBase *lb)
{
link_list(fd, lb);
for (LayerCollection *lc = lb->first; lc; lc = lc->next) {
+ lc->scene_collection = newdataadr(fd, lc->scene_collection);
link_list(fd, &lc->overrides);
link_list(fd, &lc->object_bases);
diff --git a/source/blender/makesdna/DNA_layer_types.h b/source/blender/makesdna/DNA_layer_types.h
index 2d8406e..b07f9f6 100644
--- a/source/blender/makesdna/DNA_layer_types.h
+++ b/source/blender/makesdna/DNA_layer_types.h
@@ -52,20 +52,11 @@ typedef struct LayerCollection {
struct SceneCollection *scene_collection;
short flag;
short pad[3];
- ListBase layer_collections; /* synced with collection->collections */
- ListBase object_bases; /* (ObjectBase *)LinkData->data - synced with collection->objects and collection->filter_objects */
+ ListBase layer_collections; /* synced with collection->collections */
+ ListBase object_bases; /* (ObjectBase *)LinkData->data - synced with collection->objects and collection->filter_objects */
ListBase overrides;
} LayerCollection;
-typedef struct SceneCollection {
- struct SceneCollection *next, *prev;
- char name[64]; /* MAX_NAME */
- char filter[64]; /* MAX_NAME */
- ListBase scene_collections; /* nested collections */
- ListBase objects; /* (Object *)LinkData->data */
- ListBase filter_objects; /* (Object *)LinkData->data */
-} SceneCollection;
-
typedef struct SceneLayer {
struct SceneLayer *next, *prev;
char name[64]; /* MAX_NAME */
@@ -73,10 +64,19 @@ typedef struct SceneLayer {
short active_collection;
short pad[3];
struct ObjectBase *basact;
- ListBase layer_collections;
- ListBase object_bases; /* ObjectBase */
+ ListBase layer_collections; /* LayerCollection */
+ ListBase object_bases; /* ObjectBase */
} SceneLayer;
+typedef struct SceneCollection {
+ struct SceneCollection *next, *prev;
+ char name[64]; /* MAX_NAME */
+ char filter[64]; /* MAX_NAME */
+ ListBase scene_collections; /* nested collections */
+ ListBase objects; /* (Object *)LinkData->data */
+ ListBase filter_objects; /* (Object *)LinkData->data */
+} SceneCollection;
+
/* ObjectBase->flag */
enum {
BASE_SELECTED = (1 << 0),
More information about the Bf-blender-cvs
mailing list