Commit Graph

121135 Commits

Author SHA1 Message Date
Campbell Barton
bfd3ff7e3d Cleanup: use const custom cursor arguments to GHOST
Also use int[2] for size & hot-spot arguments to avoid passing
around so many arguments.
2025-07-01 15:22:38 +10:00
Harley Acheson
ac457b9836 UI: SVG Icons as Internal Custom Mouse Cursors
This PR replaces our current custom mouse cursors (defined in
wm_cursors.cc using bitmaps and masks that we edit with a python
program) with SVG sources that are rasterized at the exact size when
needed. For Windows this would also replace the 29 platform-specific
"cur" files, although this PR does not actually remove those. For Linux
this creates the same kind of cursor as now (1bpp XBitMap) but at a
better size.

Pull Request: https://projects.blender.org/blender/blender/pulls/140990
2025-07-01 04:59:49 +02:00
Sean Kim
f7b002427f Merge branch 'blender-v4.5-release' 2025-06-30 16:51:53 -07:00
Sean Kim
c45727c9d0 Fix #141247: Assert while using sculpt filter tools
Introduced with 906a27bdb2

Pull Request: https://projects.blender.org/blender/blender/pulls/141248
2025-07-01 01:51:32 +02:00
Jesse Yurkovich
636444ae10 Fix: USD: Use correct ReportList if collection cannot be found for export
The `worker_status` hasn't been initialized yet because the job hasn't
started. Use the incoming `reports` list directly.

Pull Request: https://projects.blender.org/blender/blender/pulls/141242
2025-06-30 15:00:45 -07:00
Jesse Yurkovich
2a1ad5bf6c Fix: USD: Use correct ReportList if collection cannot be found for export
The `worker_status` hasn't been initialized yet because the job hasn't
started. Use the incoming `reports` list directly.

Pull Request: https://projects.blender.org/blender/blender/pulls/141242
2025-06-30 23:59:01 +02:00
Sean Kim
d73b8dd4f3 Paint: Migrate radial_symmetry from Scene to Mesh
This commit introduces the `radial_symmetry` property on the `Mesh`
datablock and simultaneously removes the `radial_symm` property in
Sculpt, Vertex Paint, and Weight Paint.

This allows users to have these symmetry values defined on a per-object
basis instead of needing to reconfigure it for each mesh.

Current values stored on the `ToolSettings` on a per-scene basis are not
copied to each mesh in a scene. This is done to avoid introducing
potentially inaccurate data to a large number of meshes at the cost of
some minor backwards incompatibility.

Part of #108107

Pull Request: https://projects.blender.org/blender/blender/pulls/141108
2025-06-30 23:58:05 +02:00
Sean Kim
abe151c70c Merge branch 'blender-v4.5-release' 2025-06-30 14:02:09 -07:00
Sean Kim
081aaa6c55 Fix #140668: Toggle brush support doesn't work with tool selection
Toggle support for brushes was added back in 4.5 with
9e1e9b0859. The intent of this feature is
to allow for easy switching between a specified brush upon using a
hotkey.

Whils this behavior works well in the case of switching between brushes,
the initial implementation didn't account for using other non-brush
tools.

To fix this issue, when activating a tool, if it doesn't handle brushes,
clear the last active brush.

Pull Request: https://projects.blender.org/blender/blender/pulls/141161
2025-06-30 23:01:10 +02:00
Jesse Yurkovich
3e58b6dd6a Cleanup: USD: Various non-functional changes for usd_light_convert.cc
- Remove dead conditionals from usage of `bke::node_add_static_node`
  with known node types
- Include-what-you-use additions

Pull Request: https://projects.blender.org/blender/blender/pulls/141188
2025-06-30 20:55:37 +02:00
Howard Trickey
0c89d1548a Merge branch 'blender-v4.5-release' 2025-06-30 14:34:48 -04:00
Howard Trickey
4236ce7e8d Fix #141026: (again) Previous fix to vertex dissolve was buggy.
In a fix to manifold boolean, commit a20f367379, the code
sometimes dissolved vertices in triangles and then didn't remap
those vertices. This prevents the dissolve in the first place.
2025-06-30 14:31:56 -04:00
Omar Emara
0fbf7010d9 Merge branch 'blender-v4.5-release' 2025-06-30 19:58:46 +03:00
Howard Trickey
dd72297680 Fix #140597: Manifold boolean's new faces get material from operand object.
The boolean modifier Exact solver has a solver option "Materials"
with choices "Index Based" and "Transfer". The former uses
only materials that were in the first operand object/mesh.
The Transfer option copies new materials as needed from other
object/mesh operands and uses those on the pieces of faces from
those operands that survive into the output.
Users very often use boolean to cut away from a main mesh, and
in such cases usually don't care about the materials on the cutter
operand, and don't want materials from them transferred, so the
"Index Based" choice is the default in the modifier.
It was regarded as in important bug/lack that the new Manifold
solver did not have such an option, so this commit adds one.

The Boolean Geometry Node at the moment does not have an option
and always uses the "Transfer" method, for all three solvers.
It is a matter of discussion whether such an option should be added
in the node also, so this commit does not include such a change.

The Manifold solver, up to this point, ignored the material_remaps
argument and relied on the realize_instance code to remap the
materials (it uses the Transfer strategy).
This change overrides that remapping with the explicit mapping
handed in through the API, if the mapping has non-zero size.
Since the old way (ignoring the mapping argument) worked fine for
the Boolean Geometry Node, I changed that code to make the map
have size zero in the node, in the case that the solver is Manifold.
This is a little hacky but I couldn't think of anything much better.
Long term it might be nice to have the internal boolean API not take
in remaps at all, but rather a remapping strategy choice. One thing
that makes that difficult right now is that the modifier can get
materials from either the object or the mesh (at least that used
to be true) and the internal boolean api only knows about meshes.
Another thing that would have made this task easier (for me) would
be to have realize_instances take in a material mapping strategy
as a parameter.
2025-06-30 12:49:36 -04:00
Omar Emara
fd24e1001a Refactor: Move contextual init before socket declaration
Currently, the standard init function is called before socket
declaration, but the contextual init function is called after, which is
problematic if the declaration depends on the initialization step. This
patch moves the contextual init function to be called before declaration
just like the standard init function.

This is needed when moving the File Output node to use socket
declaration.

Pull Request: https://projects.blender.org/blender/blender/pulls/141203
2025-06-30 18:47:09 +02:00
Tenkai Raiko
8efcc0475d Fix: Dilate node clamps negative values on GPU
The Dilate node clamps negative values on GPU but works fine on CPU.
This is because the minimum value was used as FLT_MIN, but it should
actually be -FLT_MAX.

Pull Request: https://projects.blender.org/blender/blender/pulls/141144
2025-06-30 18:35:10 +02:00
il4n
ff723825eb Cleanup: VSE: Remove duplicate function
Removed function `sequencer_find_region`, which was functionally
identical to `BKE_area_find_region_type`.

Pull Request: https://projects.blender.org/blender/blender/pulls/141152
2025-06-30 16:59:24 +02:00
Habib Gahbiche
59a8857fe5 Compositor: Rename "Compositing Node Tree" to "Compositor Nodes"
The change affects the default name of newly created compositing node
groups as well as visible UI strings (tooltips & errors)

Pull Request: https://projects.blender.org/blender/blender/pulls/140989
2025-06-30 15:58:16 +02:00
Habib Gahbiche
7f668be362 Nodes: rename "Hide" to "Collapse"
Design task: https://projects.blender.org/blender/blender/issues/139158

Renaming includes:
- UI description
- Python operator description
- Code (Enums, function names and variables)

Unchanged:
- Python API
  - `bpy.ops.node.hide_toggle()`
  - `node.hide`
- Python operators / scripts

The reasoning is that improved naming is not enough reason to break
backward compatibility for Python API.

Pull Request: https://projects.blender.org/blender/blender/pulls/141038
2025-06-30 15:28:19 +02:00
Hans Goudey
09d34755f1 Merge branch 'blender-v4.5-release' 2025-06-30 09:01:53 -04:00
Hans Goudey
a06705f41a Fix #141160: String input node in link-drag-search for output sockets
Missing check in 6fb69eeb71
2025-06-30 08:48:41 -04:00
Jeroen Bakker
4cd31eb5db Merge branch 'blender-v4.5-release' 2025-06-30 13:57:34 +02:00
Jeroen Bakker
9ff4328246 Fix #141078: Vulkan: Assert when uploading to large vertex buffers
When vertex buffers cannot be uploaded (buffer is to large) the buffer
will get a null handle. However it can still try to upload data to the
null handle.

Pull Request: https://projects.blender.org/blender/blender/pulls/141218
2025-06-30 13:57:06 +02:00
Jeroen Bakker
8b1b9ecae4 Merge branch 'blender-v4.5-release' 2025-06-30 13:55:57 +02:00
Jeroen Bakker
e3f2d8804f Fix #139189: Fix incorrect base and vertex offset in index buffers
When drawing batches the base and vertex offset were incorrectly
interpreted leading to artifacts.

Pull Request: https://projects.blender.org/blender/blender/pulls/141214
2025-06-30 13:55:13 +02:00
Pratik Borhade
8ebce22643 Anim: Hide unassigned bone when any collection is marked as solo
Add extra condition about `ARM_BCOLL_SOLO_ACTIVE` to hide bones that
doesn't belong to any collection when solo is enabled.

Resolves #137090

Pull Request: https://projects.blender.org/blender/blender/pulls/141010
2025-06-30 12:05:05 +02:00
Pratik Borhade
e1fbddcab6 UI: Disable remove material unused slots in edit mode
Similar to !139660
noticed this during review of !141003

Pull Request: https://projects.blender.org/blender/blender/pulls/141006
2025-06-30 12:04:12 +02:00
Nathan Vegdahl
e41450b675 Merge branch 'blender-v4.5-release' 2025-06-30 11:58:51 +02:00
Nathan Vegdahl
2630fc4978 Anim: Fix incorrect fix for weight paint Smooth Operator
#138435 was an attempt to fix the issue in #138168 where the Smooth
Operator modifies locked vertex groups. Unfortunately, the fix actually
changed some already-correct code to be incorrect to compensate for the
buggy code in the Smooth Operator.

This reverts that fix and applies a correct fix, which is to exclude
locked vertex groups in the Smooth Operator's code itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/141093
2025-06-30 11:53:09 +02:00
Bastien Montagne
3bb53a27bb Merge branch 'blender-v4.5-release' 2025-06-30 11:21:59 +02:00
Bastien Montagne
b4eeddd113 Doc: Comment about using default i18n context for some mirror operators. 2025-06-30 11:21:04 +02:00
Damien Picard
33f31f1842 I18n: Translate a few messages
I18n: Translate a few messages

- Translate add-on types in the user preferences.
- Translate a report which uses formatting.
- Do not translate scene names in `sequencer.scene_strip_add` operator
  UI.
- Do translate the type of new scene in
  `sequencer.scene_strip_add_new` operator.
- Translate Half and Float image format color depth enum items.
- Translate Mix node header with non-color data types.
- Translate sequencer modifiers' names if data translation is enabled.

Most issues reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141145
2025-06-30 11:12:48 +02:00
Damien Picard
50d7c4917b I18n: Disambiguate "Line"
"Line" can mean several things, but in this cases it means a line of
text.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141147
2025-06-30 11:07:40 +02:00
Damien Picard
afa51a5d54 I18n: Disambiguate "Mirror"
"Mirror" can mean:
- To symmetrize something (i.e. generate a new mirrored copy of it or
  edit it in a symmetric fashion).
- To flip something (i.e. invert its values along X, Y or Z axes).
- To repeat a texture in a mirrored fashion outside its bounds.

Reported by Gabriel Gazzán in #43295.
2025-06-30 11:07:39 +02:00
Omar Emara
5aa7001786 Cleanup: Correct UI on Translate node
There were various UI issues with the Translate node that this patch
fixes:

- Periods at the end of descriptions.
- Missing UI name and description for the interpolation.
- Truncated texts.
2025-06-30 10:53:16 +03:00
Jacques Lucke
04dc6b34eb Fix #141115: crash when using volume grids in simulation zone 2025-06-30 09:26:08 +02:00
Benjamin Beilharz
ac82b70b87 Compositor: Add extension mode to Translate node
This patch introduces a new Extension Mode option to the Translate node,
replacing the current repeat option and adding an extra Extend mode when
the nearest boundary pixel is sampled. The option allows choosing from
Zero, Repeat, and Extend for each of the axis independently.

A new generic sample method was added to the Result class for sampling
with arbitrary interpolation and extension modes.

Pull Request: https://projects.blender.org/blender/blender/pulls/140607
2025-06-30 09:01:34 +02:00
Jacques Lucke
4c418bfa86 Merge branch 'blender-v4.5-release' 2025-06-30 08:48:50 +02:00
Jacques Lucke
42cc65e5b5 Fix #141149: crash when toggling bake node muting
The `StringRef` in `MemoryBlobReader` was referencing data
that was freed under some circumstances. While the actual packed
data is shared between the original object and copy-on-eval object,
the name of the blobs are not.
2025-06-30 08:47:54 +02:00
Jacques Lucke
63894afe19 Fix #141177: crash opening file browser from geometry nodes modifier 2025-06-30 08:19:28 +02:00
Campbell Barton
3b538a01d9 Cleanup: quiet deprecation warning building with Python 3.14
Replace use of `_PyDict_Pop` with `PyDict_Pop` when available.
2025-06-30 15:55:19 +10:00
Campbell Barton
e9f675f40b PyAPI: add missing options to bpy.data.library.load(..)
Support options which were available from the operator:
set_fake, recursive, reuse_local_id & clear_asset_data.
2025-06-30 15:47:16 +10:00
Campbell Barton
b2ec149652 Merge branch 'blender-v4.5-release' 2025-06-30 14:31:56 +10:00
Andrej730
b025874666 Fix: Pydocs: EnumProperty items is also allowing iterables
Ref !141134
2025-06-30 14:31:15 +10:00
Bastien Montagne
4bc5874e89 Refactor: BLO: ID listing in blendfile: factorize 'read & check' logic.
The same logic was duplicated in two places, now factorize it into its
own function.

This code reads (peeks) _some_ ID info from a blendfile, without actually
reading the full ID data. And it also decides if the given ID BHead
should retained, or skipped.

This is mainly used to show a list of available IDs or assets to link or
append.

Pull Request: https://projects.blender.org/blender/blender/pulls/141103
2025-06-28 22:06:12 +02:00
Jonas Holzman
68c4f55af7 UI: Use Fit as the default frame method for Camera background images
This PR sets the default frame method for camera background images from
the current `Stretch` to `Fit`. For a lot of use cases, `Fit` is the
desired frame method, rarely `Crop` is used, with `Stretch` being even
more rare. This saves the user from having to manually set the frame
method after adding an image. This can also prevent cases where an
artist adds a reference image that's close to the camera aspect ratio
but doesn't match it completely, giving a slight distortion that they
might not immediately notice, and causing confusion down the line.

Pull Request: https://projects.blender.org/blender/blender/pulls/141075
2025-06-28 15:54:00 +02:00
Habib Gahbiche
4463ac083d Merge branch 'blender-v4.5-release' 2025-06-28 15:30:23 +02:00
Habib Gahbiche
c8cb24121f Fix #140381: Crash after deleting a node group and redo
The fix in #140381 addressed the crash after redo. This commit fixes
the crash after redo (make group) and deleting the node group.

Pull Request: https://projects.blender.org/blender/blender/pulls/140858
2025-06-28 15:27:30 +02:00
Pratik Borhade
1329e6d361 Merge branch 'blender-v4.5-release' 2025-06-28 18:11:32 +05:30
Pratik Borhade
9a9d52f550 Fix #141082: UV: Select overlap crash
Mistake in 69a1feabe6

Pull Request: https://projects.blender.org/blender/blender/pulls/141138
2025-06-28 14:39:57 +02:00