Expose the "Mute Links" add "Add Reroute" operator as active tools
in the node editor similar to the "Links Cut" tool.
This also works around #134153 by adding additional tools in the same
button group to the toolbar.
Pull Request: https://projects.blender.org/blender/blender/pulls/140429
The `eevee_render_to_image` can be called multiple time in the
case of multiview rendering.
To avoid the leak, free the previous instance before allocating
the new one. Reusing the instance doesn't seems to work here.
Another fix will follow this one to fix it more gracefuly.
This fix is kept simple for backporting purpose.
Pull Request: https://projects.blender.org/blender/blender/pulls/146015
There was a `Realized data in input geometry is ignored` warning when passing
gizmo data through instance-only nodes. This was because the node thought that
this data is "realized data" (like a mesh, curves, etc). This patch removes the
warning by making the check for realized data more precise.
Pull Request: https://projects.blender.org/blender/blender/pulls/146014
HIP-RT device:
- Add missing flags from the common flags query to the final compiler options
- Switch logging utility from printf to LOG_INFO_IMPORTANT
- Remove redundant compiler options already covered by common flags
HIP device:
- Add compiler command to logging
- Update C++ standard to C++17 to resolve compiler warnings
Pull Request: https://projects.blender.org/blender/blender/pulls/145284
Code was not guarding against missing `Editing` (like we usually do for
these situations).
This also corrects usage of `CTX_data_scene` (use `CTX_data_sequencer_scene`
where needed instead) which should be needed since 1122a05cb6
Pull Request: https://projects.blender.org/blender/blender/pulls/145908
Blade cursor patch #136749 cancelled select operations if the current
tool was the blade tool. This was to prevent LCS users from being able
to select handles when the blade tool would pass-through. This however
resulted in an RCS regression.
Fix instead by cancelling split if the mode is `use_cursor_position`
and there is no valid split, preventing a pass-through.
In RCS this works nicely because users can just select using right-click
and bypass split logic. In LCS this makes it impossible to select with
the blade tool enabled, but this is expected behavior as the blade tool
does not need strips to be selected to work anyways, and tools should
ideally have different, non-overlapping purposes. For instance, the slip
tool also does not affect selection logic.
(Note: there is one small caveat to this principle, which is that the blade
tool can't currently split connected strips together unless theyre both
already selected. This issue should be fixed with a future blade tool
refactor).
This also fixes unrelated bugs:
- Blade cursor no longer shows on first/last frames, where split point
fails
- You can no longer split in the gutters between channels
Pull Request: https://projects.blender.org/blender/blender/pulls/145938
This happened because it was attempted to access or set the
non- existent pixelspace offset of these audio strips. It is fixed by
applying the "paste at mouse" behavior only for strips that would be
rendered, which excludes sound strips implicitly. This has also
benefit, that strips with effects would only change position of the
effect thus avoiding double transformation.
Pull Request: https://projects.blender.org/blender/blender/pulls/145819
Minor update to the Video Editing app template.
The main motivation is to better expose Sync Scene Time which sits in
the footer. This could be done via versioning code, but the existing
Timeline gets on the way and it's not easy to remove via code.
A few other small changes were made without affecting the current
functionality.
The changes are:
1. Show Sequencer footer.
2. Remove Timeline editor.
3. Properties: Hide irrelevant tabs, leave only Render, Output, Scene.
4. Rename Scene to Edit.
5. Rendering: Make `Image` tab active so users can see render slots,
instead of the less useful `Tool` tab.
6. Rendering: Hide irrelevant tabs, leave only Render, Output, Scene.
7. Save.
See PR for details and screencaptures.
Pull Request: https://projects.blender.org/blender/blender/pulls/145802
Original code assumed, that if there is action or drivers, action
datablock will be copied into `Main`, which is later freed. But drivers
are not part of action datablock.
Pull Request: https://projects.blender.org/blender/blender/pulls/145677
This adds a function that can turn an existing `bNodeTree` into an inlined one.
The new node tree has all node groups, repeat zones, closures and bundles
inlined. So it's just a flat tree that ideally can be consumed easily by render
engines. As part of the process, it also does constant folding.
The goal is to support more advanced features from geometry nodes (repeat zones,
etc.) in shader nodes which the evaluator is more limited because it has to be
able to run on the GPU. Creating an inlined `bNodeTree` is likely the most
direct way to get but may also be limiting in the future. Since this is a fairly
local change, it's likely still worth it to support these features in all render
engines without having to make their evaluators significantly more complex.
Some limitations apply here that do not apply in Geometry Nodes. For example,
the iterations count in a repeat zone has to be a constant after constant
folding.
There is also a `Test Inlining Shader Nodes` operator that creates the inlined
tree and creates a group node for it. This is just for testing purposes.
#145811 will make this functionality available to the Python API as well so that
external renderers can use it too.
This replaces the "Add modifier" type enum UI with a menu,
similar to the object modifiers "Add modifier" menu.
The "Copy to Selected Strips" operator was a bit out of place
and already exists in the "Strip" menu.
Togther with the "Add" menu, these are now moved into a
"Modifiers" submenu, similar to the "Objects" > "Modifiers" menu.
Also updated for the strip context menu (right-click).
Pull Request: https://projects.blender.org/blender/blender/pulls/145981
node_geo_mesh_primitive_cube.cc uses M_PI_2 without including
BLI_math_constants.h. Unsure why this is a problem for me locally
but not for the bots but i'm guessing its a unity build difference.
Pull Request: https://projects.blender.org/blender/blender/pulls/145950
d1962be44c removed the call to
`BKE_view_layer_active_object_get()`. It did leave some "supporting
code" around, which was necessary to make that call possible but now is
no longer needed.
No functional changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/145977
This avoid using the workaround on known working drivers.
Detected when investigating shader compilation performance.
These new drivers where forced to not use threaded compilation.
Candidate for backport to 4.5 LTS.
Pull Request: https://projects.blender.org/blender/blender/pulls/145969
When an asset in the current file is loaded from a user asset library,
weak references to it will have `asset_library_type` set to
`ASSET_LIBRARY_CUSTOM` and not `ASSET_LIBRARY_LOCAL`. Its
`relative_asset_identifier` will, however, be relative to the current
file (`Object/Cube`) instead of to the asset library's root
(`cube.blend/Object/Cube`). This combination makes loading such assets
from a weak reference fail, leading to a null dereference when using the
Capture Screenshot Preview operator.
To fix this, make such assets be loaded with `asset_library_type` set to
`ASSET_LIBRARY_LOCAL` instead.
Pull Request: https://projects.blender.org/blender/blender/pulls/145967
The link buffer was not free on exit.
Previous implementation was freing it with the
gpu::Batch which is registered as preset.
This commit introduces buffer registration
to free them on exit.
Pull Request: https://projects.blender.org/blender/blender/pulls/145921
This was happening because the strip modifier types register
their panels when the editor is created, but the poll functions
of these panels did not check for the view type.
To fix this, add a condition to the `modifier_ui_poll`
that checks if the view type is not `SEQ_VIEW_PREVIEW`
when the panel is added to a sequencer space.
Pull Request: https://projects.blender.org/blender/blender/pulls/145964
When collecting operators for the operator cheatsheet (Help menu),
`node.interface_item_new` gave an error because its property
`active_item` could not gather items. This happened because `context`
was unavailable to its `get_items` method at that time.
This commit refactors the method to return early in case the context is not
found.
Pull Request: https://projects.blender.org/blender/blender/pulls/145930
When deleting the last key of an F-Curve, the F-Curve itself also gets
deleted. This is now done via the same code as deleting F-Curves from
the channel list.
Before this fix, a deletion function was used that's not capable of
deleting from Actions in NLA strips, which is why it crashed.
Pull Request: https://projects.blender.org/blender/blender/pulls/145929
This was found to be a bottleneck in #136477. Before this conversion would
always convert the entire attribute. However, the caller only required a single
index. Now the attribute is interpolated lazily when specific indices are
requested later.
Pull Request: https://projects.blender.org/blender/blender/pulls/145934
Previously, when a node was muted, all automatically hidden sockets suddenly
became visible. This is because of a rule where inputs that are never ever used,
are not-hidden (only sockets where the usage depends on some condition are
allowed to be hidden automatically). Since the inputs without internal link in a
muted nodes are never used, they become visible when a node is muted.
The solution is to ignore whether a node is muted in the case when the socket
usage for node-editor-drawing is computed. In nested nodes, muting should not be
ignored.
Pull Request: https://projects.blender.org/blender/blender/pulls/145729
Add the option to align the vertices to the maximum or minimum of all
of the selected UV's when using the Horizontal or Vertical options in
the Align operator.
Ref !139569