Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2020-09-18 17:57:33 +0300
committerSergey Sharybin <sergey@blender.org>2020-09-21 13:25:45 +0300
commit216a2218768d005c18032df370c19c1c0f571797 (patch)
tree20ec81038b82e567fc67f225bc1f7057dcaccb1f /source/blender/blenloader
parent3791dbea1e796f96440437333e4318066f26bde2 (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.c9
-rw-r--r--source/blender/blenloader/intern/writefile.c4
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 */