We can apply the `V2D_KEEPZOOM` and `V2D_KEEPOFS_Y` flags to the main VSE
region to make sure this happens. If `V2D_KEEPZOOM` is set, we should update
the view2d's `oldwinx` and `oldwiny` in `ui_view2d_curRect_validate_resize`
just like the `V2D_KEEPASPECT` case.
Divide-by-zero is a real possibility here, since initialization status of
`oldwinx/y` cannot be determined from the `resize` boolean alone (e.g. loading
regions from disk on startup yields a `true` `resize` parameter, so any old
regions that have `KEEPZOOM` added through versioning will get this error since
their `oldwinx/y` is uninitialized). Avoid by initializing `oldwinx/y` if it is zero in
`ui_view2d_curRect_validate_resize`.
Addresses #136508.
Pull Request: https://projects.blender.org/blender/blender/pulls/137802
Viewport shading mode descriptions improved. "Display only edges of
geometry without surface shading", "Display objects with flat lighting
and basic surface shading", "Preview materials using predefined
environment lights" and "Preview the final scene using the active
render engine".
Pull Request: https://projects.blender.org/blender/blender/pulls/137699
Simplification of the text on the "Save Startup" Confirmation dialog,
trying to reduce jargon and instead focus on the user effect. Title
of "Overwrite Startup File" and body of "Blender will start next time
as it is now." Similar wording for template startups.
Pull Request: https://projects.blender.org/blender/blender/pulls/134429
When performing an undo in Sculpt Mode with Dyntopo enabled, it is
possible that the active color attribute exists in the original mesh but
not on the BMesh used by Dyntopo. When attempting to extract this color
data, this can then lead to a crash.
To prevent this, use the BMesh as the source of truth for existence of
generic attributes when mode inside Sculpt Mode when Dyntopo is enabled.
Pull Request: https://projects.blender.org/blender/blender/pulls/137828
Move most `uiLayout` and `uiItem` functions to a separate
`UI_interface_layout.hh` header file. `uiItem` and `uiLayout` structs
are moved from `interface_layout.cc` to `UI_interface_Layout.hh` in
preparation for switching to an object oriented API style.
`UI_block_layout*` functions are moved to `UI_interface_Layout.hh` too,
since their implementation is also in `interface_layout.cc`
Types shared by `UI_interface_Layout.hh` and `UI_interface_c.hh`
are moved to `UI_interface_types.hh`.
Ref: #117604
Pull Request: https://projects.blender.org/blender/blender/pulls/136717
This patch introduces some optimizations to Clay Strips, resulting in a
speedup of approximately 1.22x.
- The translations are calculated more efficiently using the local
space, similar to the approach used for the Plane brush.
- Plane trimming is computed in local space.
- Strength is applied to the offset vector, avoiding an extra per-vertex
multiplication.
- The local space is constructed such that vertices affected by
the brush have a positive z-coordinate.
Note: this patch doesn't alter the way the brush works. Any
difference should be considered a bug.
Pull Request: https://projects.blender.org/blender/blender/pulls/137558
Changes
- `Main` and `NodePlacementContext` are never-null, so use references
where possible for these types.
- Move the node placement and node caching logic inside the
NodePlacementContext class itself.
- Remove effectively dead code which checked return value of
`node_add_static_node` for built-in node types.
Pull Request: https://projects.blender.org/blender/blender/pulls/137797
By default, the Ctrl-M shortcut is not working in the VSE preview.
This PR aims to address the issue and provide a working iteration of
the feature.
In my view, it would be preferable for this operator to not only flip
the `flip_x` and `flip_y` values, but also manipulate the transform and
rotation of the strips in a way that keeps the strip in the same
location on the screen, rather than flipping them to the other side.
I decided to implement the feature with this correction functionality,
as it seems more coherent with how the mirror works in other areas of
Blender.
Pull Request: https://projects.blender.org/blender/blender/pulls/136343
Normally, the dope sheet will not show the directly-assigned Action,
when that Action has no animation data for the data-block.
However, when that data-block uses the NLA, and one or more NLA strips
have an animated property (like their influence), the Action is shown in
the dope sheet for some reason.
This caused the "draw the summary line for this Action" to fail, because
it assumes there must be a slot (because normally when it's drawn, it
implies there is animation data, and thus a slot).
This assumption has been fixed, and the "no slot" case is now handled
properly.
Pull Request: https://projects.blender.org/blender/blender/pulls/137844
Currently, clicking on the viewer icon in the compositor has no effect,
whereas in geometry nodes it activate or deactivates the viewer.
The compositor requires exactly one viewer to be active. So pressing the
icon when the viewer is already active has no effect
Pull Request: https://projects.blender.org/blender/blender/pulls/137840
This patch turns the options of the Color Spill node into inputs.
In the process, the Ratio option was renamed to Limit Strength, the
unspill option was renamed to Spill Strength.
Reference #137223.
Pull Request: https://projects.blender.org/blender/blender/pulls/137848
This commit fixes a issue where Cycles adaptive kernel compilation
would always undefine adaptive kernel features, resulting in various
issues like incorrect renders.
Pull Request: https://projects.blender.org/blender/blender/pulls/137804
The copy constructors for `animrig::Strip`, `animrig::Slot`, and
`animrig::StripKeyframeData` used a `memcpy` call as part of the copy
implementation. However, this produced warnings on clang 20. For example:
```
warning: first argument in call to 'memcpy' is a pointer to
non-trivially copyable type 'blender::animrig::Strip'
[-Wnontrivial-memcall]`
```
These warnings did not reflect any actual bugs, because the underlying DNA
structs that those types wrap are in fact trivial. Nevertheless, it's worth
fixing the warnings.
This fixes the warnings by replacing the uses of `memcpy` with equivalents that
amount to a `memcpy` anyway, but which the compiler understands are valid for
the types.
There was also one additional use of `memcpy` in `Strip::create()` that did not
trigger a warning because it operated directly on the underlying DNA struct, but
was also unnecessary. This PR also replaces that with a simple assignment.
Pull Request: https://projects.blender.org/blender/blender/pulls/137467
No functional changes intended.
This patch extracts functionality to get all `bAnimListElem`
that are editable in the Graph Editor
into a separate function so it can be re-used by other operators.
This makes it easy to ensure the same data is retrieved and
filter flags can't go out of sync.
Extracted from #135913
Part of: #135794
Pull Request: https://projects.blender.org/blender/blender/pulls/137142
In a previous commmit (1), custom wire width for armatures was disabled
on macOS and a corrisponding warning was added to the UI due to a
limitation at the time leading to rendering artifacts #124691.
These limiations appear to have been sorted in Blender 4.4 and so
custom wire widths now work on macOS. So this commit removes the
warning message form the UI.
(1) a451971026
Pull Request: https://projects.blender.org/blender/blender/pulls/137651
This pull request adds options to hide and show strips in the Sequencer
Preview, using the same shortcuts. Included "Show/Hide" operators in the Strips
menu of preview mode. It only works on strips that are visible in the preview
at the current frame. The Unmute operator now shows all hidden strips in
the preview at the current frame, since it's not possible to select hidden strips
in sequencer preview.
See video in PR description.
Pull Request: https://projects.blender.org/blender/blender/pulls/137781
This commit makes two small adjustments to the
principled_bsdf_bevel_emission test:
- The IOR on the material that has the bevel shader was increased.
- With this change, RDNA4 GPUs in Blender 4.4.X now fail this test.
- The exr environment texture is swapped for a noise texture.
- This reduces the file size by about 200kb.
Ref: blender/blender-test-data!87
When snap setting is set to default and operation is cancelled,
snap setting from the topbar changes to different value instead of retaining
previous choice.
Pull Request: https://projects.blender.org/blender/blender/pulls/137819
It's safer to pass a type so that it can be checked if delete should be
used instead. Also changes a few void pointer casts to const_cast so that
if the data becomes typed it's an error.
Pull Request: https://projects.blender.org/blender/blender/pulls/137404