Commit Graph

133691 Commits

Author SHA1 Message Date
Richard Antalik c2d8d84cd8 Merge branch 'blender-v4.1-release' 2024-03-02 18:34:38 +01:00
Richard Antalik 58a9acb016 Fix #118486: Prevent emitting error when adding VSE strips
When adding strips that generate image on their own, while 3 or more
strips are selected, it emits error. This was caused by incorrect
handling of this case in `seq_effect_find_selected()`. If effect has no
inputs, function should return early.

Pull Request: https://projects.blender.org/blender/blender/pulls/118866
2024-03-02 18:34:00 +01:00
Richard Antalik fc32b9c5dd Fix: Crash when multiview movie right view is missing.
Ultimately this was due to missing nullptr check before trying to
process the image, but this should have been caught when loading
ImBufAnims. If any is missing, cancel multiview loading and load
movie as if it was single view only.
2024-03-02 18:12:47 +01:00
Bastien Montagne 015ae2b3a6 Merge branch 'blender-v4.1-release' 2024-03-02 16:29:05 +01:00
Bastien Montagne da101d8cdb Fix #118300: Broken liboverride data can crash Blender on load.
Second issue reported in the comment was caused by some shapekeys
flagged as embedded liboverride data, when their owner ID (Mesh e.g.)
is not a liboverride at all.

The `BKE_lib_override_library_validate` called on file read was only
covering real liboverride IDs, which where then supposed to take care of
their own embedded data. But since the owner ID is already a full
non-override ID, its embedded data ended up never being properly
sanitized.

Most likely more corruption data from quite old files and/or deprecated
experimental features.
2024-03-02 16:17:41 +01:00
Habib Gahbiche 38b27a9ea9 Cleanup: Compositor: silence warning 'size' is deprecated
Decouple Node data from Operation. This avoids usage of deprecated members, e.g. through copying NodeKuwaharaData.

Pull Request: https://projects.blender.org/blender/blender/pulls/118971
2024-03-02 13:11:16 +01:00
Lukas Stockner 14a8149318 Cleanup: Cycles: Remove unused function 2024-03-02 02:16:54 +01:00
Jacques Lucke fae16e7454 Merge branch 'blender-v4.1-release' 2024-03-02 01:25:04 +01:00
Jacques Lucke 4a81fe8180 Fix #115755: rename enum from type to rotation_type to resolve name collision
`type` is a built-in property already.

Pull Request: https://projects.blender.org/blender/blender/pulls/118990
2024-03-01 23:57:33 +01:00
Hans Goudey aab9ecc396 Cleanup: Remove very old hack to fix linking in interface module
Pull Request: https://projects.blender.org/blender/blender/pulls/118988
2024-03-01 23:47:18 +01:00
Hans Goudey beb92830f9 Geometry Nodes: Add node tools warning when shape keys are removed
For various reasons, node tools don't support some data. Shape keys aren't
supported because their format is entirely different for evaluated and
original data-blocks, and node tools currently work in the "evaluated"
world. Though that would be nice to change, in the meantime users
should at least be warned when this happens.

This PR adds a simple "Mesh shape key data removed" operator warning.

See #113662

Pull Request: https://projects.blender.org/blender/blender/pulls/118986
2024-03-01 22:45:04 +01:00
Jacques Lucke b879772004 Merge branch 'blender-v4.1-release' 2024-03-01 22:40:23 +01:00
Jacques Lucke 8f36281787 Nodes: expose ordering of links in multi input socket in Python
This fixes #116096 and is based on #115249 with some changes.

This patch contains three changes:
* `NodeSocket.links` in the Python API gives the links in the correct order.
* `NodeLink.multi_input_sort_id` gives read-only access to an id that's used
  for sorting. Note that for historical reasons the highest id is the first link.
* `NodeLink.swap_multi_input_sort_id(other_link)` provides a safe way to
  change the order of links connected to a multi-input socket.

Co-authored-by: Adrian Bibby Walther <adrianbibbywalther@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/118987
2024-03-01 22:36:10 +01:00
persun 8bcfe66d22 UI: Add label to sculpt symmetrize options
Add label to the sculpt symmetrize options.

With no label user may confuse if other symmetry options
above are related to the symmetrize operation.
Also reorder them so the actual operation button to go bottom.

Pull Request: https://projects.blender.org/blender/blender/pulls/112915
2024-03-01 22:28:45 +01:00
Jesse Yurkovich 833791772c Merge branch 'blender-v4.1-release' 2024-03-01 13:15:42 -08:00
Jesse Yurkovich 1597e9386f Fix #118602: Build depsgraph on main thread for Alembic
Building the depsgraph from a worker thread is unsafe currently, as it
may trigger some deferred processing on the Main data itself.

Mimic what was already done for USD (from `5cf3654d9d`) and build the
graph before launching `export_startjob`.

Pull Request: https://projects.blender.org/blender/blender/pulls/118974
2024-03-01 22:14:12 +01:00
Sean Kim 8791153a7b Cleanup: Extract sculpt gesture functionality to separate file
This PR extracts the common sculpt gesture code from paint_mask.cc into
a separate file in preparation for further changes to use it within the
existing `PAINT_OT_hide_show` box gesture operator and later for adding
a new *Lasso Hide* operator for #80390

Pull Request: https://projects.blender.org/blender/blender/pulls/118881
2024-03-01 22:07:25 +01:00
Sean Kim c60d793bbf Fix #103013: Add default cavity curve
This PR initializes all brushes with the default automasking cavity
curve when a `startup.blend` file is loaded. Because there exists a
series of brushes that are added if they are not found in the
`startup.blend` file (e.g. "Paint") **after** the file is already
loaded, the existing fallback code to handle `nullptr` in the loader
code does not run.

Pull Request: https://projects.blender.org/blender/blender/pulls/118943
2024-03-01 22:06:35 +01:00
Hans Goudey 95fb695195 Fix: Missing experimental option check for volume grid nodes search 2024-03-01 15:53:55 -05:00
Hans Goudey 600a4fff39 Cleanup: Remove unused opensubdiv compute type enum 2024-03-01 15:14:00 -05:00
Hans Goudey 840307c59a Fix: Build error on MSVC after recent cleanup, make format
captured structured bindings are a C++20 extension [-Wc++20-extensions]
2024-03-01 14:54:01 -05:00
Hans Goudey d29ce3d531 UI: Remove uiBut a1 and a2 values
Over the last couple years (!) UI buttons have moved to derived classes,
meaning we don't need to use the same "a1" and "a2" variables to store
different information. At this point, that information is set specifically
by internal UI code, or functions like `UI_but_*_set`.

These values are only set to their default 0 values now (or -1 in some
non-meaningful cases). This commit removes the values from buttons
and removes the remaining a1 and a2 arguments from the UI API.
2024-03-01 14:27:57 -05:00
Hans Goudey 8c63889241 Cleanup: UI: Use derived struct for list scroll bars, remove a1, a2 usage 2024-03-01 14:27:57 -05:00
Hans Goudey 365966d51d Cleanup: UI: Use derived struct for label buttons, remove a1, a2 usage 2024-03-01 14:27:56 -05:00
Hans Goudey 7053aef448 Cleanup: Correct comments about uiBut a1 and a2 2024-03-01 14:27:56 -05:00
Hans Goudey f4e670af2c Refactor: UI: Use regular button callbacks for curve, color ramp templates
Previously these used a special "menu func" that used an argument value
passed through each menu button's a2 value. This was more complex than
necessary given the existence of generic button callbacks.

So use std::function in these remaining cases, and remove the now-unused
`butm_func` and `butm_func_arg` values in the uiBlock.
2024-03-01 14:27:56 -05:00
Miguel Pozo 2223130b16 Fix: EEVEE-Next: Shadow debug shader
Make the implementation functional again.

Pull Request: https://projects.blender.org/blender/blender/pulls/118923
2024-03-01 20:13:12 +01:00
Sebastian Parborg a5ea31e3c1 Merge branch 'blender-v4.1-release' 2024-03-01 19:46:14 +01:00
Sebastian Parborg 1cdf41a341 Fix: CMake LIBDIR check not working as intended after cleanup
After 65f5e8b775, the LIBDIR cmake check would actually not print any
warnings if the LIBDIR could not be found automatically.
2024-03-01 19:44:02 +01:00
Sebastian Parborg 4b114861c0 Fix: CMake LIBDIR check not working as intended after cleanup
After ca8dc11a85, the LIBDIR cmake check would actually not print any
warnings or error out if the LIBDIR could not be found automatically.

Pull Request: https://projects.blender.org/blender/blender/pulls/118975
2024-03-01 19:37:36 +01:00
Harley Acheson c1b5d9d6bd Merge branch 'blender-v4.1-release' 2024-03-01 10:15:58 -08:00
Pratik Borhade 5f7b5a922d Fix: Restrict recurse select when over icon during extend-range selection
Recurse selection was not restricted to "mouse over icon" during range
selection (i.e. if we shift- double click on any area of tree element,
resurse select is still executed, which is wrong)

Also did a bit cleanup to use existing `is_over_icon` instead of calling
`outliner_item_is_co_over_icon` multiple times

Pull Request: https://projects.blender.org/blender/blender/pulls/118556
2024-03-01 19:14:45 +01:00
Bastien Montagne 1653b8b998 Merge branch 'blender-v4.1-release' 2024-03-01 18:24:22 +01:00
Bastien Montagne 427eed292d Fix #117970: Fix RNA checks for animatable properties, add a check for drivable ones.
The `RNA_property_animateable` would check for some conditions, where it
is not valid to add or edit animations (e.g. if using a linked Action
ID...).

Add a new `RNA_property_drivable`, which is essentially a call to
`RNA_property_animateable` with extra checks in liboverride cases, as
drivers are stored directly in the AnimData struct, instead of their own
dedicated ID.

Pull Request: https://projects.blender.org/blender/blender/pulls/118809
2024-03-01 18:19:38 +01:00
Harley Acheson 5e669d99d7 Refactor: UI_BTYPE_SEPR_LINE Without Need for uiBut->a1
The line separator needs to know vertical or horizontal orientation
at draw time, and is independent of button rect. This PR removes the
use of uiBut->a1 for this in favor of a derived struct.

Pull Request: https://projects.blender.org/blender/blender/pulls/118969
2024-03-01 18:09:02 +01:00
Philipp Oeser b96770f692 Merge branch 'blender-v4.1-release' 2024-03-01 16:43:26 +01:00
Philipp Oeser f880cbce93 Fix #102860: crash importing a certain dae (collada) file
There seems to not be a strict rule to only have armatures as parents to
single bones, apparently collada files can also be set up to have mesh
parents for bones. As a consequence, the collada importer
`joint_parent_map` is not safe to fetch objects from and assume their
data can be cast to `bArmature`.

Ultimately, the `joint_parent_map` needs to be looked at again, this
patch just avoids a crash in this scenario (so no such joints will be
iported). Still better than crashing I guess.

Pull Request: https://projects.blender.org/blender/blender/pulls/118751
2024-03-01 16:31:33 +01:00
Christoph Lendenfeld 69943f65c7 Refactor: replace BLI_BITMAP with blender::BitVector in keyframing.cc
No functional changes.

This PR replaces the uses of the C-style `BLI_BITMAP`
with `blender::BitVector` in `keyframing.cc`.

Note that in `BKE_animsys_nla_remap_keyframe_values` I had to
add code that maps from one to the other because I don't feel
comfortable ripping out the `BLI_BITMAP` from
`NlaEvalChannelSnapshot->remap_domain`

Pull Request: https://projects.blender.org/blender/blender/pulls/118957
2024-03-01 15:41:53 +01:00
Sybren A. Stüvel 1c5766f8bc Fix #118878: Anim: pinned bone custom properties not visible in edit-mode
Use `context.edit_bone` when available. This also properly accounts for
pinning of the armature.
2024-03-01 15:20:40 +01:00
Sergey Sharybin 3fcd7ccbc0 Compositor: Enable lock-free GPU context activation on macOS
This required to apply a small fix in the Metal texture uploader.

Without synchronization pixels of a wrong pass can be uploaded to
a wrong texture. This is because this code path is heavily reusing
temporary allocations, and at some point the allocation is not
considered as still in use, unless the command buffer used by the
texture uploader is submitted.

Ref #118919

Pull Request: https://projects.blender.org/blender/blender/pulls/118920
2024-03-01 14:38:09 +01:00
Bastien Montagne c3d3528280 Fix broken CMake file after recent refactor.
Basically all 'normal' builds were erroring in CMake config after
ca8dc11a85.
2024-03-01 12:17:44 +01:00
Christoph Lendenfeld c28e1bb482 Refactor: remove KEYFRAME_OK_CHECKS macro
No functional changes.

This PR just replaces the `KEYFRAME_OK_CHECKS` macro with a function
`keyframe_ok_checks`.

The motivation for this is to remove the confusing use of nested macros.

Since the actual check has to be passed in, this new function takes a function as an argument.

Pull Request: https://projects.blender.org/blender/blender/pulls/118914
2024-03-01 12:05:00 +01:00
Bastien Montagne 71df742eb4 Fix #117795: Add a validation pass on embedded liboverrides.
One of the consequences of the mistake in 3fcf535d2e (fixed in previous
commit), was that the more recent `LIB_EMBEDDED_DATA_LIB_OVERRIDE` ID
flag could be wrongly set in some nodetrees from pre-2.76 blendfiles.

This commit adds a check that embedded IDs flagged with
`LIB_EMBEDDED_DATA_LIB_OVERRIDE` are actually embedded IDs of a
liboverride.

Pull Request: https://projects.blender.org/blender/blender/pulls/118921
2024-03-01 11:28:38 +01:00
Bastien Montagne 05af72fc2e Fix #117795: Refactor code from 9 years ago forgot to cleanup flags of embedded IDs.
In 3fcf535d2e, the `ID.flag` data was split, keeping persisten flags in
`ID.flag`, and moving runtime ones into a new `ID.tag` data.

Some versionning code was then added to cleanup the existing `ID.flag`
on file read, but embedded IDs (root node trees only, back then) are not
stored in Main data-base, and were skipped.

Note that this fixes the conversion of older (2.76.4 and older) files.
There is no reliable way to cleanup files opened and saved from more
recent versions of Blender unfortunately.
2024-03-01 10:45:30 +01:00
Casey Bianco-Davis bf6f9ea2da GPv3: Draw tool set caps types
Adds functionally to sets the cap type of the drawn stroke.

Pull Request: https://projects.blender.org/blender/blender/pulls/118950
2024-03-01 10:45:02 +01:00
Lukas Tönne 68c12fe0ec GPv3: Envelope Modifier
Ports the Envelope modifier from GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/118272
2024-03-01 10:42:41 +01:00
Omar Emara bcb0d6ef9f Fix: Crash when using compositor debugger
Blender crashes when using the compositor debugger. That's because it
assumes the names of the operation classes will be demangled and will
proceed to slice them causing crashes. The standard makes no guarantees
about the form of the returned type_info::name, and it is implementation
defined.

While it is possible to demangle those names and return something that
is more human readable, it doesn't seem worth it as this is only used by
developers who should have no problem identifying mangled names. So we
just display the name as is.

Pull Request: https://projects.blender.org/blender/blender/pulls/118904
2024-03-01 08:45:39 +01:00
Aras Pranckevicius 43d93973c0 Fix #118666: VSE scopes showing garbage data in some cases
Waveform/vecscope does not write all the image pixels, so they
have to be initialized upon imbuf creation.
2024-03-01 09:26:55 +02:00
Campbell Barton 6e8272a5dd Cleanup: pass ViewContext as a const argument where possible 2024-03-01 16:51:28 +11:00
Campbell Barton ca8dc11a85 Merge branch 'blender-v4.1-release' 2024-03-01 16:25:29 +11:00