[Bf-blender-cvs] [1f065df03e6] master: Writefile: Cleanup GPencil data.

Bastien Montagne noreply at git.blender.org
Wed Apr 1 14:27:37 CEST 2020


Commit: 1f065df03e66b865137252db594991150c51d1bc
Author: Bastien Montagne
Date:   Wed Apr 1 12:23:12 2020 +0200
Branches: master
https://developer.blender.org/rB1f065df03e66b865137252db594991150c51d1bc

Writefile: Cleanup GPencil data.

Note: Not clearing the whole runtime data here, as this is not done in
matching read code, not sure why, needs further investigation...

===================================================================

M	source/blender/blenloader/intern/writefile.c

===================================================================

diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index fb6bd637a3b..eb85fc95e4a 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2824,6 +2824,14 @@ static void write_scene(WriteData *wd, Scene *sce, const void *id_address)
 static void write_gpencil(WriteData *wd, bGPdata *gpd, const void *id_address)
 {
   if (gpd->id.us > 0 || wd->use_memfile) {
+    /* Clean up, important in undo case to reduce false detection of changed datablocks. */
+    /* XXX not sure why the whole runtime data is not cleared in readcode, for now mimicking it
+     * here. */
+    gpd->runtime.sbuffer = NULL;
+    gpd->runtime.sbuffer_used = 0;
+    gpd->runtime.sbuffer_size = 0;
+    gpd->runtime.tot_cp_points = 0;
+
     /* write gpd data block to file */
     writestruct_at_address(wd, ID_GD, bGPdata, 1, id_address, gpd);
     write_iddata(wd, &gpd->id);



More information about the Bf-blender-cvs mailing list