diff options
author | Sergey Sharybin <sergey@blender.org> | 2020-09-18 17:57:33 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2020-09-21 13:25:45 +0300 |
commit | 216a2218768d005c18032df370c19c1c0f571797 (patch) | |
tree | 20ec81038b82e567fc67f225bc1f7057dcaccb1f /source/blender/blenloader | |
parent | 3791dbea1e796f96440437333e4318066f26bde2 (diff) |
Implement ID properties support for TimeMarker
Allows scripters to store additional information in the marker itself instead
of using work-around approach based on marker names and such.
Differential Revision: https://developer.blender.org/D8944
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 9 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6e0fc1752a9..2b68c5ea203 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4450,6 +4450,8 @@ static void lib_link_scene(BlendLibReader *reader, Scene *sce) SEQ_ALL_END; LISTBASE_FOREACH (TimeMarker *, marker, &sce->markers) { + IDP_BlendReadLib(reader, marker->prop); + if (marker->camera) { BLO_read_id_address(reader, sce->id.lib, &marker->camera); } @@ -4809,6 +4811,11 @@ static void direct_link_scene(BlendDataReader *reader, Scene *sce) } BLO_read_list(reader, &(sce->markers)); + LISTBASE_FOREACH (TimeMarker *, marker, &sce->markers) { + BLO_read_data_address(reader, &marker->prop); + IDP_BlendDataRead(reader, &marker->prop); + } + BLO_read_list(reader, &(sce->transform_spaces)); BLO_read_list(reader, &(sce->r.layers)); BLO_read_list(reader, &(sce->r.views)); @@ -7969,6 +7976,8 @@ static void expand_scene(BlendExpander *expander, Scene *sce) } LISTBASE_FOREACH (TimeMarker *, marker, &sce->markers) { + IDP_BlendReadExpand(expander, marker->prop); + if (marker->camera) { BLO_expand(expander, marker->camera); } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index db51bb79f41..336276bdd40 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1702,6 +1702,10 @@ static void write_scene(BlendWriter *writer, Scene *sce, const void *id_address) /* writing dynamic list of TimeMarkers to the blend file */ LISTBASE_FOREACH (TimeMarker *, marker, &sce->markers) { BLO_write_struct(writer, TimeMarker, marker); + + if (marker->prop != NULL) { + IDP_BlendWrite(writer, marker->prop); + } } /* writing dynamic list of TransformOrientations to the blend file */ |