Commit Graph

121159 Commits

Author SHA1 Message Date
Miguel Pozo
75bf405647 Merge branch 'blender-v4.5-release' 2025-07-01 15:26:56 +02:00
Miguel Pozo
e2b898fea7 Fix #141132: Crash on background GP render
The crash seems to come from libepoxy GL functions pointing to null.
It seems that libepoxy "Automatically initializes as new GL functions are used."
and that to call a function without a GL context bound, the function
must have been called before with a bound context.

This just modifies the scope of the context binding from
DRW_module_exit to  RE_engines_exit, which seems the safest solution
for 4.5.

Pull Request: https://projects.blender.org/blender/blender/pulls/141233
2025-07-01 15:24:45 +02:00
Christoph Lendenfeld
8be420ff1f Merge branch 'blender-v4.5-release' 2025-07-01 14:33:41 +02:00
Christoph Lendenfeld
3233ddc3b3 Fix #141243: Crash when removing constraints with drivers via python
The issue was that the depsgraph was not rebuilt, thus
the driver node still stuck around. This then crashed when the
depsgraph evaluated.

The reason why this wasn't caught in the unit tests, was because the
depsgraph was not updated between creating and removing the data.

Pull Request: https://projects.blender.org/blender/blender/pulls/141272
2025-07-01 14:28:27 +02:00
Clément Foucault
c49e9e1773 Fix: Workbench: Incomplete commit 5231f0c02a
The commit didn't include the other part of the fix and
included an invalid changed line.
2025-07-01 12:44:12 +02:00
Philipp Oeser
5231f0c02a Action Slot selector UI: Show Slot Type
Expand the selector to not just show the name, but also the type icon,
similar to the Action editor channel list.
Adds it in the icon in both the unexpanded (currently selected) slot as
well as the Slots menu [the former being the more questionable one I
think].

Part of #137276

Pull Request: https://projects.blender.org/blender/blender/pulls/140970
2025-07-01 12:14:33 +02:00
Philipp Oeser
2c4dd6c6be Merge branch 'blender-v4.5-release' 2025-07-01 12:11:34 +02:00
Philipp Oeser
c261718085 Fix #141117: Sculpt mode edit voxel size stuck at certain values
It seemed "stuck" if the initial voxel size value under the remesh tab
was larger than or equal to the longer side of the bounding plane. It
actually was not stuck, but needed long mouse travels to get into the
range that we were clamping to (behavior from 4221f827cf clamps to
"sane" values on modal that make sense for differently sized meshes).

The "sane" sizes are kept, but this PR makes sure we actually start off
with an `init_voxel_size` that is already based on the clamped minimum/
maximum (so we dont have to mousetravel that far)

Pull Request: https://projects.blender.org/blender/blender/pulls/141208
2025-07-01 12:11:20 +02:00
Clément Foucault
1c41815c4d Fix: Workbench: Color imprecision for pure black color
The bias for mapping to log color space was wrong and
was assuming `log(2x)` instead of `log2(x)`.

This made pure black colors result in 0.00008 values
after AA resolve.

Using the correct bias ensures 0 stays at 0 during the
AA process and doesn't exhibit any imprecision.
2025-07-01 11:10:18 +02:00
Aras Pranckevicius
293cdac6ab Merge branch 'blender-v4.5-release' 2025-07-01 11:53:30 +03:00
Aras Pranckevicius
5cbb1c62c4 Fix #139552: VSE strips wrongly occlude others, when render resolution scale is small
get_strip_screen_quad function was not taking render scale into account,
unlike all other places that did a similar calculation.

Pull Request: https://projects.blender.org/blender/blender/pulls/141229
2025-07-01 10:49:10 +02:00
Damien Picard
81fa28fa26 I18n: Translate two report messages needing manual translation
This call to `BKE_reportf()` uses a tertiary operator to select a
message using singular or plural, which cannot be translated
automatically. This commit adds `RPT_()` translation for both
variants.

Reported by Ye Gui in #43295.
2025-07-01 10:47:09 +02:00
Damien Picard
ac1f875a2f I18n: Translate Insert Unicode Character Cancel/Confirm Buttons
These buttons use `uiDefIconTextBut`(), which needs manual translation
for the label using `IFACE()`.

Reported by Ye Gui in #43295.
2025-07-01 10:47:09 +02:00
Clément Foucault
1b499bdffb Fix #141112: EEVEE: Plane Probe is cut off in camera view if Shift X/Y
The projection matrix Y offset was not inverted properly to compensate
the view matrix Z axis flip.

Pull Request: https://projects.blender.org/blender/blender/pulls/141227
2025-07-01 10:06:56 +02:00
Aras Pranckevicius
ff5e9c66e7 Fix #141033: VSE proxies have inaccurate colors for YUV444 or full-range videos
When converting from say YUV444 to the YUV420 that proxies use,
ffmpeg libswscale was not being told of the full vs limited value
ranges as needed.

Pull Request: https://projects.blender.org/blender/blender/pulls/141241
2025-07-01 09:27:48 +02:00
Campbell Barton
9fc300a0ea Cleanup: rename the value used to store the cursor image
Rename `render_bmp` to `bitmap_rgba` since BMP has an assassination
with the BMP file format, and this is an RGBA equivalent of an existing
`bitmap` variable.
2025-07-01 17:13:50 +10:00
Campbell Barton
bd5346e94b Fix: missing error check when loading SVG cursors 2025-07-01 17:04:10 +10:00
Campbell Barton
2b34354392 Merge branch 'blender-v4.5-release' 2025-07-01 16:38:46 +10:00
Campbell Barton
dd0a38691b Merge branch 'blender-v4.5-release' 2025-07-01 16:38:36 +10:00
Campbell Barton
cbfa328327 Fix: memory leaks in SVG & WEBP thumbnail loader on error 2025-07-01 16:32:55 +10:00
Jorn Visser
46f23bd066 Fix: memory leaks in OpenEXR thumbnail loader on error
Delete file and stream when the file is incomplete, and free ibuf when
an exception occurs.

Found while working on !139739.

Ref !139885
2025-07-01 16:32:55 +10:00
Campbell Barton
f754cf3a61 Cleanup: use float2 for the cursor hot-spot
Also resolve a clang-tidy warning.
2025-07-01 15:56:31 +10:00
Campbell Barton
a3cd145f8d Cleanup: pass cursor pixel data by reference instead of by value 2025-07-01 15:38:23 +10:00
Lukas Tönne
b0bd7531df Fix #140558: No cache reset on every subframe of the bake range start frame
The `reset_invalid_node_bakes` function resets caches on or before
the first frame of the bake frame range. This works fine for full-frame
steps, but with stretched-out frames the `SubFrame` comparator is true
for every substep when the integer frames match. This keeps resetting
the cache at the beginning of the bake range for all subframes.

The comparison function must take the subframe into account when the
integer part is equal.

Pull Request: https://projects.blender.org/blender/blender/pulls/141220
2025-07-01 07:28:05 +02:00
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