Sybren A. Stüvel 69150a35ba Refactor: anim, small refactor of armature drawing code
- 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
2023-07-27 11:32:11 +02:00
2023-07-11 22:36:10 +02:00
2023-07-25 21:43:53 +10:00

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.

Blender screenshot

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
No description provided
Readme 841 MiB
Languages
C++ 78%
Python 14.9%
C 2.9%
GLSL 1.9%
CMake 1.2%
Other 0.9%