Commit Graph

118828 Commits

Author SHA1 Message Date
Harley Acheson
166d45b80f UI: Padding When Opening Menu When One is Already Open
When you open a menu or popover, moving your mouse to a neighboring
root menu button will switch to that one. For example when you open the
"File" menu and move to the right to have "Edit" open automatically.
This currently causes problems with some neighboring menus. This PR
adds a safety padding to the open item. This generally means that once
you open a menu, you will need to move your mouse into the neighbor's
content, not just hit the edge.

Pull Request: https://projects.blender.org/blender/blender/pulls/135692
2025-04-08 22:45:39 +02:00
Sean Kim
a0eedd2193 Fix: Multiplane Scrape sculpt plane can be incorrect
Similar to !136965

Pull Request: https://projects.blender.org/blender/blender/pulls/137015
2025-04-08 22:36:06 +02:00
Harley Acheson
110b8fee41 UI: Do Not Open Neighboring Menu if Open One is Wide
When a menu is open, moving your mouse to a neighboring menu can cause
that menu to open, closing the open one.  This is very problematic when
the open menu is very wide because users are likely to travel over
other menus while moving toward items in far columns. Typically this is
the "change area" menu, but this can happen with any wide menu. This PR
just checks the menu width and turns off this feature when it is wide.

Pull Request: https://projects.blender.org/blender/blender/pulls/136528
2025-04-08 22:01:40 +02:00
Harley Acheson
b4194b08d4 UI: Do Not Full Hide Scroll Bars When Region Overlap
Currently scroll bars that are in regions that are set to "region
overlap" (like Tool Bar and Side Bar using a transparent background)
will fully hide when your mouse is not near them. This PR removes that
feature so that they are treated like in other areas. This way you can
always see that there are portions of the region scrolled away and what
proportion. A less jarring transition since it is only 0.4 - 1.0,
rather than 0.0 - 1.0.

Pull Request: https://projects.blender.org/blender/blender/pulls/136571
2025-04-08 21:32:43 +02:00
Harley Acheson
b847cc0426 UI: Region Scaling Edge Highlighting
This draws a highlight line on the active edge of regions, like side
bars and toolbars, while dragging to resize them. Similar as we do for
area resizing. This has marginal utility while using a mouse, but is
much more important when using a pen. More so when the pen has a
minimum pressure for clicking. Even more so when using touch as your
finger covers the hit target.

Pull Request: https://projects.blender.org/blender/blender/pulls/136337
2025-04-08 21:12:40 +02:00
Jacques Lucke
93deafd4a3 Refactor: Depsgraph: add const variants of a couple depsgraph query functions
This avoids the need for `const_cast` when using the depsgraph query functions
like `DEG_get_original_id` in many cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/137162
2025-04-08 18:55:22 +02:00
Richard Antalik
bf18e8f814 UI: Filter visible tabs in Properties Editor
This commit allows to specialize or optimize properties editor for
particular workflows by hiding individual tabs. The filtering is done on
editor level, currently in editor options popover panel.

Primary motivation was to allow strip properties to be moved to
properties editor. The filtering is beneficial, as usually it does not
make sense to show strip propeties in modelling workspace and in video
editing workspace other properties would introduce quite a bit of noise.

Ref. #115626

Pull Request: https://projects.blender.org/blender/blender/pulls/115624
2025-04-08 18:43:18 +02:00
Leon Schittek
796e7edfce Nodes: Support snapping when resizing nodes vertically
The snapping was originally only implemented for resizing nodes
horizontally. But since frame nodes can be resized vertically, it
makes sense to also allow snapping in that direction as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/137116
2025-04-08 18:17:01 +02:00
Sean Kim
a4004c3ac4 Fix: Revert some C++ math changes for clay_thumb.cc
* math::normalize doesn't give the same result as normalize_m4
* rotate_direction_around_axis expects a unit vector unlike
  rotate_v3_v3v3fl

Pull Request: https://projects.blender.org/blender/blender/pulls/137159
2025-04-08 18:15:13 +02:00
Leon Schittek
6ba917cd18 Fix: Nodes: Make snapping during resizing more consistent.
Make the snapped size of the node consistent regardless of whether
they are resized by dragging on the left or right edge.

Pull Request: https://projects.blender.org/blender/blender/pulls/137046
2025-04-08 18:03:28 +02:00
Hans Goudey
42adf00f53 Fix #137098: Crash when saving file in edit mode from python load_post handler
Before accessing the BMesh from BMEditMesh, it should be null checked.

Pull Request: https://projects.blender.org/blender/blender/pulls/137155
2025-04-08 18:00:03 +02:00
Jacques Lucke
86341ae826 Fix: ASAN build does not link
When building an ASAN build, I get this link error currently:
```
ld.lld: error: version script assignment of 'global' to symbol '__progname' failed: symbol not defined
ld.lld: error: version script assignment of 'global' to symbol 'environ' failed: symbol not defined
```

The solution (as proposed by Brecht) is to change the symbol names into patterns with a wildcard.
That way the linker does not fail when the symbols are not found.

Pull Request: https://projects.blender.org/blender/blender/pulls/137153
2025-04-08 17:13:59 +02:00
quackarooni
17b5ab6965 Geometry Nodes: Field Statistic Nodes
Adds field versions of the operations from Attribute Statistic, can
support grouping via Group IDs. These operations are added as separate
nodes: `Field Average`, `Field Min & Max`, & `Field Variance` which
group the different statistic operations according to their use.

Supported Data Types:
- Field Average - (Float, Vector)
- Field Min & Max - (Float, Integer, Vector)
- Field Variance - (Float, Vector)

Pull Request: https://projects.blender.org/blender/blender/pulls/134640
2025-04-08 17:12:08 +02:00
Jacques Lucke
8d1b7ce261 Fix: propagate warnings from closure zone to evaluate closure node 2025-04-08 16:50:49 +02:00
Sean Kim
ddd6403f11 Cleanup: Minor Clay Thumb brush plane calculation changes
* Removes unnecessary inverts
* Clarifys brush plane area normal usage
* Reduce scope of variables where possible
* Use equivalent C++ math apis

Pull Request: https://projects.blender.org/blender/blender/pulls/137013
2025-04-08 16:48:52 +02:00
Jacques Lucke
bf5339df14 Fix #137114: crash due to bad mesh ownership handling
When releasing a mesh from a `GeometrySet` one has to take manual control over
owner-management. In some cases, the geometry set was not the owner of the mesh,
but was just referencing it. This is generally fine in a limited set of
circumstances and can avoid copies. However, when taking ownership of the mesh
in the geometry set, one has to be sure that the geometry set actually has
ownership.

This is similar to what is done in e.g. `modifier_modify_mesh_and_geometry_set`.

Pull Request: https://projects.blender.org/blender/blender/pulls/137150
2025-04-08 16:11:52 +02:00
Sergey Sharybin
67fac1e391 Fix #137084: Image Editor shifts the images when Aspect Ratio is not 1.0
Seems to be an incorrect implementation of BLI_rctf_transform_calc_m3_pivot_min()
in 2a44bdfbd0.

Pull Request: https://projects.blender.org/blender/blender/pulls/137141
2025-04-08 15:27:47 +02:00
Falk David
20ce477ea0 Geometry Nodes: Add node to set the Grease Pencil depth order
Adds a new node to set the Grease Pencil depth ordering.

Here are the options:
* 2D Layers: Uses the Layer order + Stroke order to calculate the depth ordering.
* 3D Location: Uses the 3D position of the points as the depth.

This reflects the same setting that is available in the Grease Pencil
object-data properties.

The node is added to the `Grease Pencil` > `Write` menu.

Resolves #129458.

Pull Request: https://projects.blender.org/blender/blender/pulls/135914
2025-04-08 15:24:51 +02:00
Jeroen Bakker
7ecacbc3e6 Vulkan/OpenXR: Support VK_KHR_external_memory_win32
This PR add support to use a win32 handle to perform share render
result with the OpenXR vulkan instance. This is only possible when
the GPU matches. Otherwise a CPU roundtrip will be performed.

Pull Request: https://projects.blender.org/blender/blender/pulls/137093
2025-04-08 15:21:55 +02:00
Brecht Van Lommel
3b203aa71a Fix: ASAN error with Span.slice_safe with empty span
Happened running io_usd_import test.
2025-04-08 14:52:47 +02:00
Jeroen Bakker
22ae59d28d Vulkan: Include Win32 extensions definitions
Includes win32 specific extensions definitions when including
`vk_common.hh`. Inside `gpu_context.cc` vulkan needs to be
included before opengl, otherwise windows 10 builders will
report a warning.

```
[6421/7520] Building CXX object source\blender\gpu\CMakeFiles\bf_gpu.dir\intern\gpu_context.cc.obj
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared\minwindef.h(130): warning C4005: 'APIENTRY': macro redefinition
C:\Users\blender\git\blender-vexp\blender.git\lib\windows_x64\epoxy\include\epoxy/gl.h(59): note: see previous definition of 'APIENTRY'
```

Pull Request: https://projects.blender.org/blender/blender/pulls/137134
2025-04-08 14:10:01 +02:00
Habib Gahbiche
0caa85a6b2 Cleanup: use node.is_type() instead of node.type_legacy
Pull Request: https://projects.blender.org/blender/blender/pulls/137136
2025-04-08 13:14:38 +02:00
Jacques Lucke
3a7dc6ed7f Cleanup: improve comment 2025-04-08 12:29:02 +02:00
Jacques Lucke
2825eee715 Cleanup: include name in printed GeometrySet 2025-04-08 12:29:02 +02:00
Jacques Lucke
53072e7a67 Cleanup: remove unnecessary null check
The null check is not necessary, because the function does not fail
because `PyUnicode_Check` is used on the value already.
2025-04-08 12:29:02 +02:00
Jacques Lucke
82aa6a3b71 Cleanup: improve comment for GeometrySet.name 2025-04-08 12:29:01 +02:00
Jacques Lucke
9c89e9c6fd Fix: raise exception when passing arguments to GeometrySet constructor 2025-04-08 12:29:01 +02:00
Maxime-Cots
a4a4dc7da5 Compositor: Expose interpolation in Corner Pin node
This patch exposes an interpolation option to the Corner Pin node,
allowing to choose between Nearest, Bilinear, Bicubic, and Anisotropic.

Pull Request: https://projects.blender.org/blender/blender/pulls/123206
2025-04-08 12:13:47 +02:00
Philipp Oeser
2a36b613ca Fix #137135: Grease Pencil Join not reporting non-active layer
Reported because this operator relies on an active layer, now report an error if this is
not the case.

Pull Request: https://projects.blender.org/blender/blender/pulls/137138
2025-04-08 12:13:23 +02:00
Sybren A. Stüvel
9605cbde6f Fix #137041: Bugs with Slotted Actions and the Available Keying Set
Make the 'Available' keying set look at the F-Curves for the assigned
slot, instead of the backward-compatible API (which only sees the F-Curves
for the first slot).

Pull Request: https://projects.blender.org/blender/blender/pulls/137131
2025-04-08 11:10:46 +02:00
Sybren A. Stüvel
a753d68271 Anim: remove 'name' spacing from Debug Channel List operator
Remove the space-padding from the channel name in the Debug Channel List
operator.

This is a follow-up commit after !137105, to present things a little
cleaner.
2025-04-08 10:43:58 +02:00
Sybren A. Stüvel
ac87a11ece Anim: expand the debug printing of animation channels with their settings
Expand the "Debug Channel List" operator so that it also shows the channel
settings. The setting name is printed in ALL-CAPS if it is on, and in
lower case letters when it is off.

Note that this operator is only available in debug builds of Blender.

Pull Request: https://projects.blender.org/blender/blender/pulls/137105
2025-04-08 10:41:03 +02:00
Jacques Lucke
d8a959f34a Cleanup: avoid error-prone function cast 2025-04-08 09:54:39 +02:00
Jacques Lucke
6f022e0530 Fix #137127: missing null check when accessing GeometrySet.mesh 2025-04-08 09:50:10 +02:00
Jeroen Bakker
6785c5e3b9 Cleanup: Vulkan: incorrect include statement
vk_samplers.hh included itself
2025-04-08 09:35:41 +02:00
Campbell Barton
7657afc8cb Correct error in 5d3496625d 2025-04-08 15:43:38 +10:00
Campbell Barton
5d3496625d Fix: regression storing density in BMP I/O
Regression in [0] which broke support for writing DPI.

[0]: aa3bdfd76a

Ref: !137122
2025-04-08 05:40:43 +00:00
Campbell Barton
80f30211c6 ImBuf: support rendering BMP images with alpha
Support rendering to BMP images with alpha since OIIO supports this.
This was likely left disabled from when Blender's own BMP I/O didn't
support alpha.

Ref !137123
2025-04-08 05:38:59 +00:00
Campbell Barton
d19362df66 Cleanup: quiet unused variable warning 2025-04-08 15:18:53 +10:00
Campbell Barton
256d964879 Cleanup: avoid function casts for BlenderAppTranslationsType 2025-04-08 14:57:14 +10:00
Campbell Barton
a3bd06b4c8 Cleanup: sort cmake file lists 2025-04-08 14:09:15 +10:00
Campbell Barton
92fe84374d Cleanup: remove redundant calls to object & ID material resize
BKE_id_material_clear is already syncing other objects material length.
2025-04-08 14:03:28 +10:00
Zyq-XDz
cebffdfdfa Fix #136384: Separate by Material leaves objects without material slots
`BKE_id_material_clear` removes all materials for each linked objects.
However, the code doesn't sync the materials after resize.

Ref: !136863
2025-04-08 14:02:00 +10:00
Alaska
612f6697c5 Fix #137100: Extra version when reporting a bug from the crash window
This fixes a issue where the word "version" would be listed twice in
bug reports made from the new crash window feature.

Pull Request: https://projects.blender.org/blender/blender/pulls/137119
2025-04-08 04:05:18 +02:00
Campbell Barton
01dc87d841 ImBuf: write the aspect ratio to EXR images
Only rendered EXR's had the aspect ratio written.
2025-04-08 10:14:36 +10:00
Campbell Barton
44fdc7cf8b Fix #137082: Wrong pixel aspect ratio for rendered output
Correct [0], where the density must "correct" the squashed dimension
using a lower density.

[0]: af1110fb3c
2025-04-08 10:14:36 +10:00
Harley Acheson
a21481cbdd UI: Allow Changing Editor Outline Width
The gaps between editors need to be selected and manipulated in order
to resize areas. How wide these need to be depends on the accuracy and
resolution of your pointing device. And also on the fine motor control
and visual acuity of the user. If you are using a tablet pen, touch
device, or are visually or physically challenged, then you need these
gaps to be wider. This PR allows a wide latitude in this.

Pull Request: https://projects.blender.org/blender/blender/pulls/126334
2025-04-07 21:15:20 +02:00
Martin-Vignali
7d75c5e2bc Movie: Add support for writing ProRes codec videos
ProRes is a common intra-frame codec in post-production work, supported
by a wide range of post-production software.

This PR adds support for direct output from Blender using the ProRes
codec from FFmpeg. Alpha is supported, along with 8 and 10-bit channel
images.

Co-authored-by: mvji <33432858+mvji@users.noreply.github.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/136405
2025-04-07 20:57:44 +02:00
Falk David
7b705d6e54 Fix #137043: Grease Pencil multi frame falloff not working correctly
The multi-frame falloff calculation had multiple issues.
It was also not the same as in 4.2 LTS.

This fixes the issues and should result in the exact same
falloffs as it did in 4.2 LTS.

Also resolves #137055.

Pull Request: https://projects.blender.org/blender/blender/pulls/137091
2025-04-07 18:22:41 +02:00
Hans Goudey
0b7b2e737f Fix: EEVEE motion blur broken after recent fix
Caused by 36130d5584.
That changed the order of the buffers in the surface batch.
I added an assert here so that won't happen again.

Pull Request: https://projects.blender.org/blender/blender/pulls/137104
2025-04-07 18:04:00 +02:00