6e75581e6533f169dbd58b4ecad20652fd5c66f7
While embedded IDs are usually considered as private local data of their owner ID, some areas of code, like the depsgraph, can consider them as regular IDs in some aspects. So when swapping IDs, also properly 'counter-swap' their potential embedded IDs, such that the pointers to the embedded IDs remain as before swapping, even though the data of the embedded IDs is swapped. The main target of this change is memfile undo code. There, newly read IDs are swapped with their oldder version, so that the old address contains the new data. This allows to avoid rebuilding some of the depsgraph. Doing the same thing for embedded IDs should reduce even further the needs for depsgrah rebuilds on undo steps. This commit also gives more control over the remapping of 'self' ID pointers inside themselves. Pull Request: https://projects.blender.org/blender/blender/pulls/107044
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
