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.
This commit is contained in:
parent
f0ddbcb31d
commit
c9e9a42215
Notes:
blender-bot
2023-12-08 16:39:08 +01:00
Referenced by issue #89771, Cloth disk cache is not read on library overrides when original linked data is already set to use 'Disk Cache'
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue