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:
Diffstat (limited to 'source/blender/blenloader/intern/writefile.c')
-rw-r--r--source/blender/blenloader/intern/writefile.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 1e0ef4a6a16..f49148342ec 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -128,6 +128,7 @@ Any case: direct data is ALWAYS after the lib block
#include "DNA_vfont_types.h"
#include "DNA_world_types.h"
#include "DNA_windowmanager_types.h"
+#include "DNA_movieclip_types.h"
#include "MEM_guardedalloc.h" // MEM_freeN
#include "BLI_blenlib.h"
@@ -2258,6 +2259,9 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
else if(sl->spacetype==SPACE_USERPREF) {
writestruct(wd, DATA, "SpaceUserPref", 1, sl);
}
+ else if(sl->spacetype==SPACE_CLIP) {
+ writestruct(wd, DATA, "SpaceClip", 1, sl);
+ }
sl= sl->next;
}
@@ -2506,6 +2510,38 @@ static void write_scripts(WriteData *wd, ListBase *idbase)
}
}
+static void write_movieclips(WriteData *wd, ListBase *idbase)
+{
+ MovieClip *clip;
+
+ clip= idbase->first;
+ while(clip) {
+ if(clip->id.us>0 || wd->current) {
+ MovieTracking *tracking= &clip->tracking;
+ MovieTrackingTrack *track;
+ writestruct(wd, ID_MC, "MovieClip", 1, clip);
+
+ if(tracking->reconstruction.camnr)
+ writestruct(wd, DATA, "MovieReconstructedCamera", tracking->reconstruction.camnr, tracking->reconstruction.cameras);
+
+ track= tracking->tracks.first;
+ while(track) {
+ writestruct(wd, DATA, "MovieTrackingTrack", 1, track);
+
+ if(track->markers)
+ writestruct(wd, DATA, "MovieTrackingMarker", track->markersnr, track->markers);
+
+ track= track->next;
+ }
+ }
+
+ clip= clip->id.next;
+ }
+
+ /* flush helps the compression for undo-save */
+ mywrite(wd, MYWRITE_FLUSH, 0);
+}
+
/* context is usually defined by WM, two cases where no WM is available:
* - for forward compatibility, curscreen has to be saved
* - for undofile, curscene needs to be saved */
@@ -2582,6 +2618,7 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil
write_windowmanagers(wd, &mainvar->wm);
write_screens (wd, &mainvar->screen);
}
+ write_movieclips (wd, &mainvar->movieclip);
write_scenes (wd, &mainvar->scene);
write_curves (wd, &mainvar->curve);
write_mballs (wd, &mainvar->mball);