Commit Graph

139275 Commits

Author SHA1 Message Date
Harley Acheson
ef080a4219 UI: Icon Hover Brightness for Properties Items
Properties category icons with new SVG icons are slightly brighter than
before, and therefore do not seem to brighten on hover. This PR makes
them match exactly. Was assigning an alpha instead of multiplying. And
an earlier refactor for outlines made these icons not show initially
dimmer unless there is also an outline.

Pull Request: https://projects.blender.org/blender/blender/pulls/125029
2024-07-19 04:17:52 +02:00
Harley Acheson
3b4debd285 Revert #124938: Allow Back Button When File Browser Loaded in Workspace
This reverts #124938 & #124827, leaving File Browser as it was before,
without any extra ED_fileselect_set_params_from_userdef to ensure that
the previous_dir is populated with current directory. I have not found
a place to ensure this history is correct (when File Browser is part of
the layout) that does not cause unintended consequences. Will mark the
original bug report, #124771, as unresolved.

Pull Request: https://projects.blender.org/blender/blender/pulls/125019
2024-07-18 22:27:07 +02:00
Bastien Montagne
a62f1dc6cc Refactor: use new PartialWriteContext for copy of Material ID.
Fairly trivial conversion, since there is no complex handling of
dependencies currently in that case.

NOTE: Also fixes the 'not copying any material' issue also present in
4.2 (at least), but the proper way. For reference, see !125003 for a fix
for code using the deprecated partial write API.
2024-07-18 19:01:51 +02:00
Sean Kim
5bbf2f430a Refactor: Specialize flood_fill methods per PBVH type
Part of #118145.

The `flood_fill` functions are used for a number of different remaining
brushes and tools. It is unlikely that this particular implementation
is the most efficient way to solve the problems that the different
brushes pose, but further refactors to improve performance should
happen in future commits. For now this is a temporary solution to
remove usage of `PBVHVertRef` and related macros.

Pull Request: https://projects.blender.org/blender/blender/pulls/124830
2024-07-18 18:18:44 +02:00
Sean Kim
972fadf5a4 Fix: Sculpt: Various tools not using crosshair cursor
Follow up to !123570

With !122709, many Sculpt tools were changed to remove the visual brush
radius displayed by the brush cursor to avoid confusing users. This had
the unintended side effect of forcing these tools to use the default
arrow cursor.

This commit adds the PAINT_CROSS cursor back to various Sculpt Mode
tools to remain consistent within the overall mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/124946
2024-07-18 18:14:21 +02:00
Sean Kim
cb4aecca80 Cleanup: Restructure and add doxygen blocks to sculpt_boundary.cc
Part of #118145

This commit restructures sculpt_boundary.cc to improve readability and
aid in iteratively removing usages of PBVHVertRef.

Pull Request: https://projects.blender.org/blender/blender/pulls/124958
2024-07-18 18:12:14 +02:00
Sybren A. Stüvel
2fa7e7eda3 Anim: call RNA_POINTER_INVALIDATE() when deleting things from RNA
Call `RNA_POINTER_INVALIDATE()` when deleting action layers, strips,
channelbags, and slots.

Pull Request: https://projects.blender.org/blender/blender/pulls/124994
2024-07-18 17:52:06 +02:00
Alaska
935c49f1cf Render tests: Use blocklist name for blocked tests
Pull Request: https://projects.blender.org/blender/blender/pulls/124960
2024-07-18 17:31:52 +02:00
Sybren A. Stüvel
efbdc4e1fa Anim: ChannelBag F-Curve management functions (C++/RNA)
Add F-Curve management functions on ChannelBags
(`channelbag.fcurves.xxx`) that are very similar to the legacy Action
functions `Action.fcurves.xxx`.

```python
channelbag = strip.channelbags.new(slot)
fcurve = channelbag.fcurves.new("rotation_quaternion", index=1)
assert channelbag.fcurves[0] == fcurve
channelbag.fcurves.remove(fcurve)
channelbag.fcurves.clear()
```

Pull Request: https://projects.blender.org/blender/blender/pulls/124987
2024-07-18 17:06:12 +02:00
Aras Pranckevicius
7a260b761d Fix #124589: VSE meta/scene strip contents have misleading horizontal margins
To account for rounded corners, the meta/scene strip contents were
drawn with a horizontal margin on both strip sides. However this is
confusing and misleading, since it can look like the contents have
a frame gap between content start and parent strip start.

Instead, add vertical margins which do not have a possibility of
confusion with frame gaps.

Pull Request: https://projects.blender.org/blender/blender/pulls/124965
2024-07-18 16:48:52 +02:00
Bastien Montagne
8055b5d4f9 Core: PartialWriteContext: Fix handling of operations for dependencies.
Add an explicit mask in `IDAddOperations` for flags that are inherited
by default for dependencies of explicitely added data.

And refactor handling of per-id-usage flags returned by the
`dependencies_filter_cb` callback to also have a mask value defined in
`IDAddOperations`, as this is clearer and easier to maintain than a
constexpr hiddin in implementation code.
2024-07-18 15:59:44 +02:00
Xavier Hallade
cee4ad4518 Refactor: Cycles: oneAPI: Simplify num_concurrent_states()
Deduplicated code by reusing num_concurrent_busy_states().
2024-07-18 15:46:17 +02:00
Xavier Hallade
c8421a0007 Cycles: set num_sort_partition_elements to 65536 for simd16+ Intel GPUs
Intel(R) Data Center GPU Max greatly benefits from this change since
its bigger simd width leads to a greater execution divergence.
2024-07-18 15:15:00 +02:00
Nathan Vegdahl
9a28e1d1b8 Refactor: move fcurve methods from KeyframeStrip to ChannelBag
Semantically this is where those methods belong anyway, and it's needed
for upcoming work on the RNA API.

This also adds a method `KeyframeStrip::channelbag_for_slot_ensure()` to
make some of the things that used to be done with
`KeyframeStrip::fcurve_find_or_create()` less inconvenient in the face
of the latter moving to `ChannelBag::fcurve_find_or_create()`.

Pull Request: https://projects.blender.org/blender/blender/pulls/124973
2024-07-18 15:07:16 +02:00
Jacques Lucke
52ad896b35 Fix: Outliner: incorrect tooltip for delete library operator
Undo is supported for a while already.
2024-07-18 14:57:36 +02:00
Christoph Lendenfeld
6ef77a0d22 Anim: Deselect Keys before inserting new keys
This commit changes the keying code to deselect keyframes when inserting new keys.
This has been discussed in the Animation & Rigging module meeting [1].
There is also an RCS post about that [2].
Doing this brings key creation in line with object creation,
where only the newly created object is selected.
There has been a previous attempt [3] to do a similar thing.

### Changes
When inserting keys by pressing `I` in the viewport or choosing a keying set,
all keys of the `Action` get deselected before inserting new keys.
New keys are selected by default.
Python RNA functions are **NOT** affected, meaning addons using
those functions will not deselect any keys by default.
The developer has to choose to do so.
To make that easier, there is a new RNA function on the action
`deselect_keys`

[1]: https://devtalk.blender.org/t/2024-05-02-animation-rigging-module-meeting/34493#patches-review-decision-time-5
[2]: https://blender.community/c/rightclickselect/K0hbbc
[3]: https://archive.blender.org/developer/D11623

Pull Request: https://projects.blender.org/blender/blender/pulls/121908
2024-07-18 14:48:00 +02:00
Pratik Borhade
c7ecaf67fd Fix #124906: GPv3: Eraser crash when pressure is enabled
This is due to uninitialized `curve_strength` table. It is either
initialized for active tool or the eraser (if ctrl is held). So fix is
to choose correct brush in execute() function.

Also fix the inverted condition in begin() function to choose
eraser brush.

Pull Request: https://projects.blender.org/blender/blender/pulls/124975
2024-07-18 13:33:08 +02:00
Bastien Montagne
1144235e90 Cleanup: VSE Copy/Paste: Use new SET_CLIPBOARD_MARK operation. 2024-07-18 12:52:45 +02:00
Bastien Montagne
74a279ebc7 Cleanup: VSE copy/paste: Simplify namespace handling. 2024-07-18 12:52:45 +02:00
Bastien Montagne
7a87233c85 PartialWriteContext: add the 'clipboard mark' new operation option.
This is used by ID copy/paste code to detect which IDs from a copy/paste
buffer can be used as paste source.

Also slightly refactor implementation to handle both fake/extra ID user,
and clipboard mark in the same utils function.
2024-07-18 12:52:45 +02:00
Falk David
0c6365ecad Fix: GPv3: Crash switching to weight paint mode
The issue was that `BKE_paint_get_active_from_paintmode`
was called before `BKE_paint_ensure`.
2024-07-18 12:30:57 +02:00
Sebastian Parborg
81ee5c0313 Fix: VSE strip offsets were not drawn correctly
The code used a hack to work around a quirk that was fixed in 7b25d1327e.
Update the code to work properly (now also with sound offsets)

Pull Request: https://projects.blender.org/blender/blender/pulls/124972
2024-07-18 11:59:39 +02:00
Sybren A. Stüvel
7360ce4bcc Anim: add RNA code for ChannelBags
RNA API for creating & removing channelbags, as well as a path function
to construct RNA paths for channelbags.

```python
action = bpy.data.actions.new('TestAction')

slot = action.slots.new()
slot.name = 'OBTest'

layer = action.layers.new(name="Layer")
strip = layer.strips.new(type='KEYFRAME')

# New in this commit:
channelbag = strip.channelbags.new(slot)
strip.channelbags.remove(channelbag)
```

Pull Request: https://projects.blender.org/blender/blender/pulls/124793
2024-07-18 11:14:15 +02:00
nutti
3ecfa5659e PyDocs: distinguish between tuple and union data types
Ref: !124879
2024-07-18 15:39:04 +10:00
Campbell Barton
5a29b16974 Cleanup: spelling in comments 2024-07-18 15:24:27 +10:00
Campbell Barton
5b2771cd0c Cleanup: replace copy-by-value with const reference
This was changed in [0] & [1] when replacing `float[3]` with `float3`.
However copying by value wasn't needed for the fix.

[0]: 7249b78b6b
[1]: efd3c4b3c9
2024-07-18 15:17:12 +10:00
Campbell Barton
c1deaeb57a Cleanup: quiet compiler warning with LIBDECOR disabled 2024-07-18 15:10:45 +10:00
Guillermo Venegas
604dc2cc33 Fix #124931: Fix crash dropping images in overlapping regions
Ref: !124921
2024-07-18 14:57:58 +10:00
Harley Acheson
e802fe1433 UI: Screen Area Docking Experimental Feature
Improvements to Area maintenance, adding the ability to move and dock
areas to any location, including between multiple windows. Allows
transitioning between splitting, joining, moving, and docking without
early commit. Improved visual feedback. Design Doc #124915. Added
as experiment feature.

Pull Request: https://projects.blender.org/blender/blender/pulls/123414
2024-07-18 02:47:32 +02:00
Sean Kim
7104813d31 Cleanup: Add copyright to sculpt_flood_fill.cc
Missed in 76a1e19

Pull Request: https://projects.blender.org/blender/blender/pulls/124942
2024-07-18 02:06:17 +02:00
Harley Acheson
0b70a9edc5 Fix: Do Not Reload File Browser Params in fileselect_refresh_params
Fix #124827 for Bug #124771 adds a call in fileselect_refresh_params to
ED_fileselect_set_params_from_userdef. But fileselect_refresh_params is
not just called from file_init but also file_refresh, which is far too
often and keeps some options from being selected. This moves
ED_fileselect_set_params_from_userdef directly to file_init.

Pull Request: https://projects.blender.org/blender/blender/pulls/124938
2024-07-18 01:28:31 +02:00
Harley Acheson
6240a36d18 Refactor: Icon Type ICON_TYPE_MONO_TEXTURE to ICON_TYPE_SVG_MONO
A rename of the icon type ICON_TYPE_MONO_TEXTURE to ICON_TYPE_SVG_MONO
to better reflect the underlying function. This new name makes a nice
matched set with new ICON_TYPE_SVG_COLOR used for SVG in full color.

Pull Request: https://projects.blender.org/blender/blender/pulls/123957
2024-07-17 22:15:09 +02:00
Harley Acheson
6145920a0d UI: Allow Use of Full-Color UI Icons
Allow the optional use of SVG UI icons shown in full color by
changing their definition from DEF_ICON to DEF_ICON_COLOR.

Pull Request: https://projects.blender.org/blender/blender/pulls/124696
2024-07-17 20:13:17 +02:00
Clément Foucault
a882473f38 EEVEE: Update render tests 2024-07-17 18:31:37 +02:00
Harley Acheson
a63a15527d Fix #124771: Allow Back Button When File Browser Loaded in Workspace
If File Browser is opened while embedded into a blender window, as
apposed to opened in a new window, some initialization is not done
and the current directory is not added to the list of previous
folders. Therefore the "back" button cannot bring you back to the
initial folder. This happens if your layout contains a File Browser
editor, like when selecting New / Video Editing. This PR just adds
`ED_fileselect_set_params_from_userdef` to `fileselect_refresh_params`,
which is called from `file_init()`.

Pull Request: https://projects.blender.org/blender/blender/pulls/124827
2024-07-17 17:54:13 +02:00
Bastien Montagne
3d3fb3dcce Fix: BKE: PartialWrite: Wrong define used in masked-in values.
`DUPLICATE_DEPENDENCIES` was wrongly used instead of `ADD_DEPENDENCIES`,
the former should be considered a non-modifiable option for a whole
'add' operation. But the per-ID-usage callback should be able to force a
dependency to be added or cleared.
2024-07-17 17:46:54 +02:00
Weizhen Huang
4000e1f2f2 Fix: EEVEE materials with three closures render black on MacOS
somehow the compiler is struggling with `default:` in `switch`, even if
it's never reached.
This fixes the discrepancy in the `principled emission alpha` test.

Pull Request: https://projects.blender.org/blender/blender/pulls/124889
2024-07-17 17:37:18 +02:00
Weizhen Huang
275d90f2b0 Fix: EEVEE missing break in switch case
this was working because the following cases overwrite the previous set,
but it's still better to have a `break`.
2024-07-17 17:27:16 +02:00
Bastien Montagne
da59808ce1 RNA: Add comment about recent change to references for extern'ed PropertyRNA.
Comment about why change from faf56cc3bf was needed, and what are the
consequences (regarding type aliasing).
2024-07-17 17:20:03 +02:00
Alaska
2724f296b2 Render test: Add option to ignore block list
Add a option to ignore Cycles render test black list, controlled via
BLENDER_TEST_IGNORE_BLOCKLIST environment variable.

Useful for testing to see if anything is seriously broken in a test
that's black listed. (E.g. See if some particle rendering tests are
seriously broken on the GPU)

It would be recommened that this be used to test GPU compiler updates.
Or the enablement of certain features like custom curve rendering on
custom BVH.

Pull Request: https://projects.blender.org/blender/blender/pulls/124662
2024-07-17 16:59:25 +02:00
Laurynas Duburas
85f8161ef7 Overlay-Next: Lattice
Overlay-Next version of Lattice.

Rel #102179

Co-authored-by: Clément Foucault <foucault.clem@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/123398
2024-07-17 16:49:38 +02:00
Sergey Sharybin
389b322975 CMake: Add buildbot configuration for all platforms
It allows to more easily override cmake options which we want to
be enabled on the buildbot.

In a way it was possible to do via the pipeline config, but this
change provides a more natural way for Blender developers to set
CMake configuration which is to be enabled on buildbot, but not
on local developer machines.

Pull Request: https://projects.blender.org/blender/blender/pulls/124892
2024-07-17 16:48:18 +02:00
Laurynas Duburas
a412268980 Fix: Overlay-Next when multiple objects are click selected
Fixes Overlay-Next selection when multiple objects are hit.

To reproduce:
- enable "Ovlay Next" in Preferences>Experimental
- create any Empty object and duplicate it without moving
- try to select by clicking them

Crash occurs because `mixed_bones_object_selectbuffer` in `view3d_select.cc` expects that `view3d_opengl_select_ex` will append results to `buffer`. Depending on situation after several `view3d_opengl_select_ex`calls with decreasing radius it tries to `slice` results from buffer:
```c
has_bones9 = selectbuffer_has_bones(storage.as_span().slice(ofs, hits9));
```

Pull Request: https://projects.blender.org/blender/blender/pulls/124154
2024-07-17 16:07:15 +02:00
Campbell Barton
80f0c613c0 Fix #123096: Opening & closing a window freezes Blender under Wayland
Skipping window decoration creation apparently resolves the freeze,
although I'm unable to redo this on my system.
2024-07-17 23:59:18 +10:00
Hans Goudey
6c2e998e7f Cleanup: Sculpt: Avoid deformation flushing call for non-deforming tools 2024-07-17 09:57:25 -04:00
Hans Goudey
2f4926d6e7 Fix: Sculpt: Avoid unnecessarily creating layer displacement factor array
When using the persistent base feature, the separate array isn't necessary.
2024-07-17 09:57:25 -04:00
Jeroen Bakker
31a045ba15 Vulkan: Faster hashing of fragment shader
Improving performance as hashing the fragment shader was visible
in performance analysis. This PR calculates the hash once and stores
it inside the struct for quick access.

Pull Request: https://projects.blender.org/blender/blender/pulls/124882
2024-07-17 15:23:21 +02:00
Bastien Montagne
faf56cc3bf RNA generated code: Move extern'ed PropertyRNA from pointers to references.
Clang (at least on OSX) has optimization issues with the pointer
version, which seem to be 'fixed' by using references.

Note that using references here is not a bad thing anyway (none of these
pointers would ever be expected to be NULL).

Pull Request: https://projects.blender.org/blender/blender/pulls/124883
2024-07-17 15:19:54 +02:00
Campbell Barton
c7a26cf5c2 Fix #124850: Add-on legacy replacement fails without remote repo data
When the user attempted to install a previously enabled add-on as an
extension after enabling online access and *without* viewing extensions,
installation would fail.

Resolve by adding a check that the remote repository data is available,
adding a button to refresh remote repositories if it's not.
2024-07-17 22:42:16 +10:00
Jeroen Bakker
1497e37728 Cleanup: Vulkan: Descriptor set allocations
During descriptor set update several internal buffers where reallocated
over and over. As descriptor set updates are done very often (1000s
times per frame) some performance could be gained by keeping the
previous allocated buffers around.

Pull Request: https://projects.blender.org/blender/blender/pulls/124877
2024-07-17 14:38:44 +02:00