69150a35baf1dbda8dfcc9d257940c9696c51fac
- Introduce `UnifiedBonePtr` to avoid having to pass `(EditBone *eBone, pPoseChannel *pchan)` everywhere. - Introduce `eArmatureDrawMode` and store that on the `ArmatureDrawContext`, to avoid having to pass `bArmature *arm` and then doing `arm->flag & ARM_POSEMODE` everywhere. - Use the `eBone_Flag` type instead of `int`. - Deprecate the `ARM_POSEMODE` armature flag. It is no longer necessary, and also it was changing DNA data from the draw functions. The flag was basically purely runtime-only, to pass some information to lower-level drawing code, yet it was stored in DNA. It has been replaced by the `eArmatureDrawMode` on the context. Note that some comparisons `eBone != nullptr` (often using the implicit conversion of pointer to boolean) have been replaced by a comparison to `ctx->draw_mode`. This is used in cases where the pointer comparison was actually indicative of the draw mode, and to help get the `else if (draw_mode == ARM_DRAW_MODE_POSE)` symmetrical. Disclaimer: this `UnifiedBonePtr` can probably be used in many other places in Blender as well. We might move it somewhere else in the future, but to keep things simple I just want to see how it behaves locally first. Pull Request: https://projects.blender.org/blender/blender/pulls/110424
…
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%
