0a633a4e07fd309d8d4d2dbf7b2f99b7d0be3b96
The outliner tree element creation function passed a `void *idv` argument and did weird and hard to follow stuff with it (like casting it to `ID *` even though it wouldn't point to an ID, and further overriding it based on the element type). This change tries to untangle this, so that it's easy to follow what's going on, and so that a bunch of casts from non-ID data to ID pointers are removed. Basically the void pointer is split into an ID pointer for the owning ID (if any) and a void pointer for custom data for the element creation. This can be made type safe still, but that's for another commit. It also allows us to remove some wrapper structs. The element creation function itself no longer needs to know what kind of data is passed via the void pointer. So this change has a number of benefits in fact. Also improves/adds related comments. Was quite careful to not cause behavioral changes.
…
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%
