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:
authorBastien Montagne <bastien@blender.org>2021-07-14 13:14:51 +0300
committerBastien Montagne <bastien@blender.org>2021-07-14 15:23:19 +0300
commitc9e9a422154581c5882b74e93c5be25798c88026 (patch)
tree309e18184dff580136caca871ca8a299c1a23da1
parentf0ddbcb31de2040cf6311bb857f91a2b47c954d1 (diff)
Fix T89771: Cloth disk cache is not read on library overrides in some cases.
Issue would happen when the original, linked data already had 'Disk Cache' setting enabled. Override would then see no difference with linked data, and not create any rule for it (as expected). Root of the issue was that in Cloth modifier copy code, those disk cache settings were not copied at all, so every time local overrides were re-generated by copying linked data, those flags would be reset to their default values. NOTE: this might exist in other PointCache usages as well, but this code is in such a bad state that I'd rather do minimal strictly needed changes there, on a case-by-case basis. Proper recode of that whole system is wayyyyy out of scope here.
-rw-r--r--source/blender/makesdna/DNA_pointcache_types.h1
-rw-r--r--source/blender/modifiers/intern/MOD_cloth.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_pointcache_types.h b/source/blender/makesdna/DNA_pointcache_types.h
index 5ba76b456f0..7de0bb29c46 100644
--- a/source/blender/makesdna/DNA_pointcache_types.h
+++ b/source/blender/makesdna/DNA_pointcache_types.h
@@ -157,6 +157,7 @@ enum {
PTCACHE_FLAG_INFO_DIRTY = 1 << 14,
PTCACHE_REDO_NEEDED = PTCACHE_OUTDATED | PTCACHE_FRAMES_SKIPPED,
+ PTCACHE_FLAGS_COPY = PTCACHE_DISK_CACHE | PTCACHE_EXTERNAL | PTCACHE_IGNORE_LIBPATH,
};
#define PTCACHE_COMPRESS_NO 0
diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c
index 40d027f3044..4487adcfdda 100644
--- a/source/blender/modifiers/intern/MOD_cloth.c
+++ b/source/blender/modifiers/intern/MOD_cloth.c
@@ -206,6 +206,7 @@ static void copyData(const ModifierData *md, ModifierData *target, const int fla
tclmd->point_cache->step = clmd->point_cache->step;
tclmd->point_cache->startframe = clmd->point_cache->startframe;
tclmd->point_cache->endframe = clmd->point_cache->endframe;
+ tclmd->point_cache->flag |= (clmd->point_cache->flag & PTCACHE_FLAGS_COPY);
}
}