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...
This commit is contained in:
Bastien Montagne 2020-04-01 12:23:12 +02:00
parent ec351c7a65
commit 1f065df03e
1 changed files with 8 additions and 0 deletions

View File

@ -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);