4d1fe98604342034861f865d7b0ef38e18934a25
This implements (most of) the proposal in #122743: * Add a new `IDP_FLAG_STATIC_TYPE` IDProperty flag. * Update `BPy_IDProperty_Map_ValidateAndCreate` and related to never change an existing property type if statically typed. The biggest change happens in bpy assignement code, since instead of replacing the old exisitng property by a newly created one, and copying over a few settings, now the old property is kept if possible, and a new one is only created if needed. And in case the existing property is statically typed, if it cannot be re-used to store the given value, and error is reported and it remains unchanged. `IDP_ARRAY` is also supported for basic numeric types, so 'vector' properties and such work as expected. Lentgh is considered as part of the static type (i.e. one can only assign a 3 components py sequence to a 3-len array property, etc.). Such in-place update is not yet implemented for `IDP_IDPARRAY` and `IDP_GROUP` types. While important (especially the group one), they are not that critical for the current issues related to changing IDProperty types.
…
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
11%
C
6.3%
GLSL
2.2%
CMake
1.3%
Other
1.1%
