Caused by fb556c75df
The ideal would be to increase the version file, but this would make
the versioning code a bit messy, and it was a recent error
(it shouldn't affect many users).
Since different symbols are implemented, there is a distinction between
endpoint and loose point, which was partially missing in the snap code
for Mesh.
This case probably hasn't been triggered before because we rarely move individual
const-components around between geometry sets. This happened in #113083 in the
optimization when all elements are in the same group.
Pull Request: https://projects.blender.org/blender/blender/pulls/113160
Since garbage collection of texture pools happens every time
`drw_manager_init` is called, interleaved calls to different
`DRW_draw`/`DRW_render` functions can result in a constant cycle of
creating/releasing textures.
This PR changes texture pools to only release textures that have not
been used for N garbage collection cycles.
I chose 8 as default since I think is high enough to avoid the issue
while it's unlikely to cause any major spike in memory consumption.
Pull Request: https://projects.blender.org/blender/blender/pulls/113024
This is because the menu entry was using different operator
properties from what the shortcut is defined for. It was needed
to make it so an operator which is called from the menu does not
have dependency on the mouse location.
Now it is achieved by resolving MOUSE side to RIGHT from the
operator's exec().
Ref #112598
Pull Request: https://projects.blender.org/blender/blender/pulls/113143
New bones (Shift+A in armature edit mode) are added to the active bone
collection. This collection can be hidden, causing the newly added bone
to be invisible. This is consistent with adding objects to hidden scene
collections, but can be confusing nonetheless. Now a warning is issued,
at least for the armature/bone case.
The `armature.bones["name"].color` property is *the* bone color, which is
intended to be used as the primary way of coloring bones. THis is now
reflected better in the UI.
The per-armature-object bone color (i.e. `ob.pose.bones["name"].color`) is
seen as a secondary.
Add the 'move bone to collection' operator to the pose mode menu. It was
already in the armature edit mode menu.
The operator was already available in the pose mode keymap, it just wasn't
discoverable via the menu.
<algorithm> header include is missing from some sycl headers, this will
be fixed upstream with https://github.com/intel/llvm/pull/10424,
meanwhile, we work around it by including it directly.
Since [0] picking a bezier knot doesn't pick the handles,
this meant picking a vertex, then inverting the selection would
delete that vertex, which isn't useful/expected behavior.
Invert selection now considers knots selected whenever any of it's
handles are selected (matching the graph editor).
This change has also been made for grease-pencil bezier editing.
[0]: 618f39fca23ca7734a09a8f08efced8379efd2b3
Revert a change from [0]. There is no need to count items in the
collection/array as the property iterator can detect this.
[0]: a280e8a68c15ee3ec0978fb594b29d083fd2bcd6
Sometimes .blend files have compatibility issues between Blender versions,
because .blend files depended on the specific order of geometry elements
generated by some nodes/modifiers (#112746, #113018). While we make
guarantees about the order in some places, that is relatively rare, because it
makes future improvements much harder. The functionality in this patch
makes it easier for users to notice when they depend on things that are not
expected to be stable between Blender builds.
This is achieved by adding a new global flag which indicates whether some
algorithms should randomize their output. The functionality can be toggled
on or off by searching for `Set Geometry Randomization`. If there are no
differences (or acceptable minor ones) when the flag is on or off, one can
be reasonably sure that one does not on unspecified behavior (can't be 100%
sure though, because randomization might be missing in some places). If
there are big differences, one should consider fixing the file before it comes
to an actual breakage in the next Blender version.
Currently, the setting is only available when `Developer Extras` is turned on,
because the setting is in no menu.
With this patch, if we get bug reports with compatibility issues caused by
depending on indices, one of the following three cases should always apply:
* We actually accidentally broke something, which requires a fix commit.
* Turning on geometry randomization shows that the .blend file depends on
things it shouldn't depend on. In this case the user has to fix the file.
* We are missing geometry randomization somewhere, which requires a fix
commit.
Pull Request: https://projects.blender.org/blender/blender/pulls/113030
A lot of Capture Attribute nodes in sequence can create a huge number of attributes.
If these attributes are not used, they should be removed.
The speed of the Capture Attribute and Store Named Attribute nodes is now identical
(for the better). There are also no extra RAM usage now.
Pull Request: https://projects.blender.org/blender/blender/pulls/113053
Separate user configuration of subpixel antialiasing from the hinting
options. For example, this allows turning this on while hinting is
"None", or off when hinting is "Full".
Pull Request: https://projects.blender.org/blender/blender/pulls/113027
Subchannel (mesh, shapekey, lattice, speaker, ...) color could not be
changed from NLA Preferences, `ds_subchannel` was only initialized in
userdef_default_theme.c [making it more or less hardcoded].
Now expose this in Preferences.
Pull Request: https://projects.blender.org/blender/blender/pulls/113045
If an armature is present, but not active the group_select_mode defaults to WT_VGROUP_BONE_DEFORM, and throws an error because it can't find any active vertex groups. we're now checking to see if any bone is actively deforming before switching to WT_VGROUP_BONE_DEFORM (else defaulting to WT_VGROUP_ALL)
Pull Request: https://projects.blender.org/blender/blender/pulls/112648
Make the Ctrl+ACCENT_GRAVE hotkey call the 'show all bone collections'
operator (`armature.collection_show_all`), instead of 'show all armature
layers' (`armature.layers_show_all`).
This was the last reference to `armature.layers_show_all`, and the operator
has been removed.
Changes to the mouse cursor would only display when the main loop
was being handled, so blocking actions such as file load wouldn't
refresh the cursor.
Solve by flushing the display when the cursor changes.
Copy to selected & Alt-LMB dragging buttons didn't account for
custom properties, An IDProperty from one item was applies to other
items in the selection.
Now ID property paths are resolved up for every selected item.
Don't pass custom property names to RNA_struct_type_find_property
since this meant custom-property names could intentionally collide with
RNA property names.