Commit Graph

150077 Commits

Author SHA1 Message Date
Jacques Lucke
46ece39c1a Fix #133189: crash when hiding inline socket
Now the output socket checks if the corresponding inline socket that it should
be aligned with is visible.

This is an alternative to #133271 which had the problem that it resulted in
`flat_item::Socket` instances for which the input and output is `nullptr`.

Pull Request: https://projects.blender.org/blender/blender/pulls/133325
2025-01-20 22:53:10 +01:00
Weizhen Huang
350bd60b11 Fix: Cycles: Metal compilation when include is guarded behind WITH_CYCLES_DEBUG
Happens after f79cae2c59. Seems that Metal pre-processing could not
figure out that the inclusion is guarded behind `#ifdef`, so the
included file is expanded here and never again afterwards.
The pre-processing should be fixed, but for now just always include the file.

Pull Request: https://projects.blender.org/blender/blender/pulls/133336
2025-01-20 19:15:46 +01:00
Hans Goudey
8cb4d6aaab Cleanup: Unused variable with asserts off 2025-01-20 12:37:25 -05:00
Bastien Montagne
e8e6705081 Add note about calling Blender-defined constructor in multi-inheritance cases
`super()` is using the MRO to find the first `__init__()` function, if the blender-defined type is not the first inherited type, it may never be called that way.

See #133183
2025-01-20 18:35:18 +01:00
Bastien Montagne
2d7068a0d3 Add file_path_map function to bpy.data.
Similar to `bpy.data.user_map`, it returns a mapping of IDs to all the
filepaths they use.

Fairly basic still, may need to be refined with more options to
control which filepaths are included etc.

Mainly intended to make handling of a production blendfile dependencies
more easy.

Also adds some basic testing of the new feature.

Pull Request: https://projects.blender.org/blender/blender/pulls/127252
2025-01-20 17:39:25 +01:00
Pratik Borhade
012afaf318 Fix: Remove unused parameter from skip_strokes_with_locked_material
Mistake in 076663177f

Pull Request: https://projects.blender.org/blender/blender/pulls/133331
2025-01-20 17:29:32 +01:00
Julian Eisel
92a1ba2511 Fix: Assets: Custom library with empty path breaks catalog loading
With an asset library configured in the Preferences that had an empty
path, the catalog tree of the "Current File" asset library would be
empty. That is because the path-less library would incorrectly be
considered as containing the current file's path (`BLI_path_contains()`
returned true for the empty path).
2025-01-20 17:19:39 +01:00
Nikita Sirgienko
84bc5741cc Build: Upgrade OIDN to 2.3.2
This upgrades OIDN to the 2.3.2 release
and bring minor improvements.

Ref #128577

Pull Request: https://projects.blender.org/blender/blender/pulls/133321
2025-01-20 16:51:04 +01:00
Weizhen Huang
f79cae2c59 Fix: Cycles: Compilation issue with WITH_CYCLES_DEBUG enabled
Pull Request: https://projects.blender.org/blender/blender/pulls/133303
2025-01-20 16:11:38 +01:00
Nathan Vegdahl
3ed2c2346d Fix #129540: allow stashing same Action with different Slots
Before slotted actions, it was only useful to stash an action once on a
data-block: that was all that was needed to keep the action's channels
associated with the data-block, and stashing it multiple times was redundant.
Therefore Blender would simply refuse to stash an action if it was already
stashed.

However, now with slotted actions the user may legitimately want to stash an
action more than one time: if the action has multiple slots, the user may want
to keep the channels of multiple slots all associated with a data-block.  Doing
that requires stashing each action+slot combination separately.

This PR addresses this use case by now allowing each action+slot *combo* to be
stashed once. Stashing a given action+slot combo more than once per data-block
is still prevented, however, since that is still redundant.

Pull Request: https://projects.blender.org/blender/blender/pulls/133307
2025-01-20 16:11:08 +01:00
Pratik Borhade
076663177f Fix #132943: Grease Pencil: Don't erase strokes with locked material
For points with locked material, add them to `src_to_dst_points`
as in they are outside the eraser ring to avoid deleting these points.
A new function is introduced to deal with it.
For stroke eraser mode, pass true in Indexmask `strokes_to_keep`.

Pull Request: https://projects.blender.org/blender/blender/pulls/133137
2025-01-20 15:42:11 +01:00
Bastien Montagne
f2d8fcbe01 I18N: Updated UI translations from git/weblate repository (6885672aa041daecbe). 2025-01-20 15:26:16 +01:00
Nathan Vegdahl
9f2ab9cba0 Anim: rename RNA Slot.id_root to Slot.target_id_type
The name `id_root` was not descriptive, and was just a hold-over from the
equivalent (now deprecated) property on the Action itself.  `target_id_type`
is more clear, reflecting that this is the type of ID the Slot is intended
to animate.

This PR also renames the corresponding `id_root_icon` to
`target_id_type_icon`.

Note that this PR updates the GLTF import/export core addon to adhere to
these name changes as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/133164
2025-01-20 15:24:08 +01:00
Nathan Vegdahl
bbfc49be83 Fix: audit and fixes for uses of Action.idroot
Did a pass through the code base to make sure the uses of `Action.idroot`
are correct in the context of layered actions.

I found and fixed one issue in Grease Pencil v2 -> v3 conversion code
where the idroot was being set to a non-zero value without checking if
the action was layered or not first. Other than that, I also cleaned up
a couple of dodgy-looking things I found.

Pull Request: https://projects.blender.org/blender/blender/pulls/133205
2025-01-20 15:21:53 +01:00
Nathan Vegdahl
7358f11a66 Cleanup: rename missed cases of action "slot name" to "slot identifier"
When previously renaming "slot name" to "slot identifier" in #130740
and #130911, some places in function parameters and code comments were
missed. This PR renames those missed cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/133301
2025-01-20 15:19:25 +01:00
Nathan Vegdahl
1ac5b45eae Anim: add Action+Slot selector for Compositing Node Tree
This allows users to manage the Action and Slot assignment of a Scene's
compositing nodes. The selector lives in the Animation Panel in Scene
Properties, alongside the Action+Slot selector of the Scene ID itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/133141
2025-01-20 15:18:21 +01:00
Sybren A. Stüvel
fc44eb910d Anim: Copy Global Transform, use slotted Actions correctly
The operators of the Copy Global Transform add-on now use slotted
Actions.

Pull Request: https://projects.blender.org/blender/blender/pulls/133308
2025-01-20 14:05:30 +01:00
Sybren A. Stüvel
84af3a41b0 Anim: Copy Global Transform, correctly restore scene after Fix to Camera
After using the Fix to Camera operator, restore the transform matrices
of the fixed-to-camera objects/bones. This is necessary as the
autokeying options (like 'Only Available') may limit the keys that are
set, and thus going to the original scene frame may not be enough to
restore the full transform.
2025-01-20 14:05:30 +01:00
Sybren A. Stüvel
04e9c5cca2 Anim: Copy Global Transform, remove unnecessary exception handling
No functional changes, as the documented reason the exception handling was
there isn't appliccable any more.
2025-01-20 14:05:30 +01:00
Sybren A. Stüvel
e8019814bd Anim: Copy Global Transform, fix MyPy warnings
No functional changes, except that a rare error case is now handled
correctly.
2025-01-20 14:05:30 +01:00
Falk David
10632776b5 Cleanup: Grease Pencil: unused parameter warning
Caused by ff9992d77f.
The argument is not used/needed.
2025-01-20 14:00:56 +01:00
Philipp Oeser
f6b820ccb7 Fix #133296: Grease Pencil influence VG affects stroke but not fill
This was true for Opacity or Tint modifiers where influence vertexgroups
were having an effect on strokes, but were ignored for fills.

This was also the case for GPv2 / 4.2, but there is no apparent reason
for not doing this on fills (if we are doing it for strokes).

NOTE: it was actually in use if "Use Weight as Factor" was used (but
that only means weights should be used directly, otherwise [when used as
influence], weights should be multiplied).

Pull Request: https://projects.blender.org/blender/blender/pulls/133306
2025-01-20 13:33:56 +01:00
Pratik Borhade
ff9992d77f Fix #133240: Grease Pencil: Reset vertex color ignores selection mask
`Reset color attribute` operator currently removes the `vertex_color`
attribute from geometry. If selection exists, reset the color value to
1.0 instead of clearing the entire attribute.

Pull Request: https://projects.blender.org/blender/blender/pulls/133249
2025-01-20 12:58:34 +01:00
Pratik Borhade
131270cb5a Fix: Grease Pencil: Consider selection mask for fill material in vpaint
`apply_color_operation_for_mode` only deals with the selection mask if
vertex color mode is `Stroke` (or the attribute domain is `Point`).
Use similiar logic for `mode=Fill`(domain=`Stroke`).

Pull Request: https://projects.blender.org/blender/blender/pulls/133256
2025-01-20 12:58:09 +01:00
Stefan Werner
416085d893 Fix: Added missing include to allow Cylces build without Embree 2025-01-20 12:41:19 +01:00
Omar Emara
d4189ee398 Fix #133225: File Output nodes fail inside node groups
The File Output node no longer works inside node groups since the
introduction of the new CPU compositor. This is explicit in the code, so
we just consider all file output nodes recursively to fix this issue.
2025-01-20 13:11:28 +02:00
YimingWu
a2dbe53a3c Fix #133013: Grease Pencil: Refined stroke attribute randomization
Randomization of stroke color(H/S/V), opacity, radius and rotation was
implemented using this formula:

`value = original_value * random(0~2)` (1)

Which was different from before Grease Pencil v3 rewrite:

`value = original_value + random(0~2)` (2)

This leads to different looks of the stroke. This PR fixes the problem
by implementing formula (2) for the randomization mixing to restore
original behaviour.
Also makes sure the values are correctly clamped to the expected ranges.

Pull Request: https://projects.blender.org/blender/blender/pulls/133032
2025-01-20 11:41:18 +01:00
Brecht Van Lommel
1fb83c551a Fix #132781: MaterialX node name conflict causes crash
Use BLI_uniquename_cb to check and fix naming conflicts, and keep track
of the potentially modified node names in a map.

Reserve the material name, so that later the output node can be renamed to it
without conflicts. Also make sure there are no conflicts with names auto
generated by MaterialX, by always naming nodes ourselves.

Pull Request: https://projects.blender.org/blender/blender/pulls/133234
2025-01-20 11:37:08 +01:00
Philipp Oeser
82ea972834 Fix #133295: Grease Pencil tint influence vertexgroup has no effect
The weights were only used when "Use Weight as Factor" was used (this is
wrong though, that button uses the weights directly, otherwise the
Factor has to be multiplied by the weights -- as done in all other
modifiers [and in 4.2])

Pull Request: https://projects.blender.org/blender/blender/pulls/133297
2025-01-20 11:36:17 +01:00
Brecht Van Lommel
da1497af5e Refactor: MaterialX: Add NodeGraph wrapper around MaterialX graph
Pull Request: https://projects.blender.org/blender/blender/pulls/133234
2025-01-20 11:26:10 +01:00
Jeroen Bakker
781aeb1b3f Fix #133155: Vulkan: Initial uniform buffer upload failing
In some cases the initial uniform buffer upload fails. Using the
indirect upload (via render graph) does succeed. This PR uses the
render graph approach.

Pull Request: https://projects.blender.org/blender/blender/pulls/133293
2025-01-20 11:00:27 +01:00
Eric Cosky
292b0c74d3 Fix #133239: Corrected inconsistent use of calloc/free vs new/delete to fix crash when disabling VR preview
Code at the XR actionmap level is using calloc/free, but later when
conditions trigger WM_operator_properties_alloc in
`windowmanager\intern\wm_operators.cc` it is using MEM_new, which is
the mismatch. XR actionmap code needed to be modified to be compatible
with the allocators it is using.

Pull Request: https://projects.blender.org/blender/blender/pulls/133274
2025-01-20 10:46:08 +01:00
Pratik Borhade
9439ff09e9 Fix #133259: Regression: Error when saving a theme
Missed in 655a17a6ab.

Pull Request: https://projects.blender.org/blender/blender/pulls/133285
2025-01-20 10:35:27 +01:00
Jonas Holzman
5472ffeae3 Fix: UBSan division by zero runtime error in intern/shrinkwrap.cc
This error would occur because the quadratic equation solving code didn't
check for `a` being non-zero. Fixed by adding the additional check. This
can be tested and reproduced using the `ShrinkwrapTargetNormalProject2`
`modifiers` test.

Pull Request: https://projects.blender.org/blender/blender/pulls/133273
2025-01-20 10:05:34 +01:00
Campbell Barton
723cd87d49 Cleanup: quiet compiler warning 2025-01-20 17:10:21 +11:00
Campbell Barton
ad7a6495ac PyDoc: use "note" directive for bpy.props
Also minor rewording & adjust indentation.
2025-01-20 16:34:47 +11:00
Campbell Barton
4507c9fcc2 PyDoc: add bpy.types.PropertyGroup to registration doc-strings
Ref !133233

Co-authored-by: Jonathan Plasse <jonathan.plasse@eilbek-research.de>
2025-01-20 16:12:11 +11:00
Campbell Barton
7cd621bebc Fix incorrect docs for bpy.types.bpy_prop_collection_idprop
ID Property methods were missing from the API docs,
error in [0] which added docs for this type.

[0]: 10e3e3b4a0

Co-authored-by: nutti <nutti.metro@gmail.com>
2025-01-20 15:49:54 +11:00
Campbell Barton
ddae7cd966 PyAPI: expose bpy.types.bpy_prop_collection_idprop
Expose the IDProperty sub-class of `bpy.types.bpy_prop_collection`,
needed for API doc generation but should have been exposed for
completeness.
2025-01-20 15:47:08 +11:00
Alaska
786a601cc8 Tests: Enable OptiX OSL window test
The window coordinate test was on the block list due to the
world shader rendering it incorrectly.

This has since been fixed, so this test can be removed from the
blocklist.

Ref: blender/blender#123012
Ref: blender/blender@4f0aef1fde
2025-01-20 05:06:13 +01:00
Pratik Borhade
a9b863be43 Fix #58333: Box select missing status bar key for deselect
Allow mouse release events to be included on status bar.

Pull Request: https://projects.blender.org/blender/blender/pulls/133182
2025-01-20 03:54:56 +01:00
Lukas Stockner
4f0aef1fde Fix #132516: Cycles: No NDC coordinates with OSL on OptiX
This attribute just wasn't implemented on OptiX. Not sure why, adding it works.
2025-01-20 03:42:02 +01:00
Lukas Stockner
2bd71e2fd8 Cleanup: Cycles: Cleanup point cloud attribute update
For other geometry types this was done in bbe6d44928, but for some reason
point clouds were added with the old scheme.
2025-01-20 02:49:35 +01:00
Lukas Stockner
e5ca7ae421 Fix #108215: Cycles: Point Cloud uses wrong position with Persistent Data
The problem here was that the sync code overwrites the point data, but didn't
reset the transform_applied flag, so the rest of the code assumed that the
points are already in world space and didn't apply the transform again.
2025-01-20 02:49:35 +01:00
Harley Acheson
5a452884fc UI: Improve Status Bar Display for GP Lines
When adding Grease Pencil lines, circles, curves, etc this PR updates
how the status bar shows options. No big changes just substituting
icons for text.

Pull Request: https://projects.blender.org/blender/blender/pulls/133279
2025-01-20 02:35:01 +01:00
Campbell Barton
d42b425ea9 Fix #131062: Active tool does not sync in Texture Painting workspace
Resolve an error where the brushes from the image/3D viewport
where shared but the tool was not. Causing the brush not to match
the appropriate tool when both an image & 3D viewport were displayed.

Resolve the issue by adding support for a "pending" tool,
a tool ID which is to be used.

This accounts for cases where it's not known if the requested tool
exists and uses the same code paths for initializing tools as is done
for initializing on file load for e.g.

Ref !133085
2025-01-20 11:21:33 +11:00
Campbell Barton
90b03d2344 Cleanup: spelling in comments 2025-01-20 11:19:23 +11:00
Campbell Barton
05efd19982 Cleanup: hide unused variable, correct comment 2025-01-20 11:19:06 +11:00
Richard Antalik
5394cb7514 Fix: VSE retiming key python API not defined on all strip types
API was defined only for movie strips. Define is also for Scene, image
and sound strips.

This required minor refactoring of how RNA collection type is defined.

Pull Request: https://projects.blender.org/blender/blender/pulls/133103
2025-01-19 21:21:36 +01:00
Richard Antalik
30f3eaa2a5 Fix #133167: Scene snapping settings confilict with VSE
Enabling `use_snap_rotate` in 3D viewport caused rotation in sequencer
to apply snapping. Rotation snapping was using mixed snapping functions,
which aren't implemented in sequencer.

Ignore affect rotation/scale tool setting property and force increment
snapping to be used with these transform modes.

Pull Request: https://projects.blender.org/blender/blender/pulls/133272
2025-01-19 20:56:56 +01:00