Blender Git Commit Log

Git Commits -> Revision 18387ad

February 28, 2017, 13:06 (GMT)
Big refactor of differential override storage.

On second thought, modifying real data-block to store diff in it is...
just bad. Because it affects actual data, because it involves complicated
and heavy processes like remapping, and because it stores useless values
in .blend file (i.e. values that would give garbage results if e.g.
opening .blend file with older version of Blender, etc.).

So instead, decided to save an extra data-block in .blend file each time
we have some differential overrides.

Note that for now, we do full copy of datablock into its extra 'storage'
sibbling for .blend file. This is bad (think about double copy of heavy
mesh...) and will have to be fixed. Whole copy process will need serious
work anyway, for that kind of features we need to be able to copy
without increase usercount of IDs etc.

In fact, here, maybe we even need a smarter version of copy that would
only duplicate sub-data as needed by diff-overriden properties...

Commit Details:

Full Hash: 18387ad49616f6fb3fde42c8115193d76d9a97ed
Parent Commit: b08a5d1
Lines Changed: +380, -266

8 Modified Paths:

/source/blender/blenkernel/BKE_library_override.h (+14, -5) (Diff)
/source/blender/blenkernel/intern/library.c (+2, -0) (Diff)
/source/blender/blenkernel/intern/library_override.c (+113, -77) (Diff)
/source/blender/blenloader/intern/readfile.c (+2, -1) (Diff)
/source/blender/blenloader/intern/writefile.c (+131, -117) (Diff)
/source/blender/makesdna/DNA_ID.h (+5, -1) (Diff)
/source/blender/makesrna/intern/rna_access.c (+107, -61) (Diff)
/source/blender/makesrna/RNA_access.h (+6, -4) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021