PR #141419 gated init behind a `nullptr` check, but it would still try
to run transform engine code, which accesses the unset region. Fix by
preventing any sort of `move_strips` operation when `region` doesn't
exist.
Pull Request: https://projects.blender.org/blender/blender/pulls/141582
Don't attempt to fill curve caps when the direction vector is invalid.
This prevents the crash in #141612 however the root cause of that
report isn't directly related to curve filling.
The check to prevent overly complex tessellation checked the objects
scale directly instead of the final evaluated scale.
Also corrects the scale check which wasn't accounting for negative axes.
The mesh importer was only checking for animated positions, velocities,
and primvars when determining if a cache modifier needed to be used.
Extend this to crease values (and normals) too.
The added test ensures a base level of coverage here.
Related to: #141633
Pull Request: https://projects.blender.org/blender/blender/pulls/141643
This commit fixes a bug where the timeline area height was clamped to
its minimum value when restoring an area layout saved on a non-HiDPI
screen on a HiDPI screen. In particular, this caused the default Blender
startup file timeline area to be wrongly clamped dwon on macOS when
using a HiDPI/Retina screen.
This was due to the `screen_geom_vertices_scale_pass` function using raw
`area->winy` value in the `facy > 1` case, which ensures the timeline
does not get expanded when resizing the window if its already at its
minimum height. When restoring the area layout, these `winy` values
were not yet refreshed, and still used the DPI scale of the screen
the layout was saved on. Which in case of macOS HiDPI screens caused
them to be two times smaller then the screen / other size values used
in the function.
This was fixed by using the `screen_geom_area_height()` instead, which
computes the area height from its screen geometry coordinates, and was
previously used in this function before being replaced by `winy`. The
comparaison now also uses a fixed value instead of `facy` which was
also subject to DPI differencies, see PR thread for more details
Pull Request: https://projects.blender.org/blender/blender/pulls/141154
This renames UI_block_layout API as blender::ui::block_layout_resolve,
following uiLayout refactors.
This simplifies usage by returning block layout size as C++ int2 instead
of using return parameters, in fact some places were providing
unused variables.
Part of: #117604
Pull Request: https://projects.blender.org/blender/blender/pulls/141432
Now that the `t->data` and `t->data_ext` arrays have the same ordering,
it is no longer necessary to include each member of `t->data_ext` in
`t->data`. Access can be done using the same index.
Pull Request: https://projects.blender.org/blender/blender/pulls/141563
Line art bakes strokes in a separate thread, which will also update
depsgraph, and if an image editor is present, it will try to iterate all
the objects in the view layer and this is unsafe. Now line art will set
region drawing lock to prevent image editor from drawing while baking.
Pull Request: https://projects.blender.org/blender/blender/pulls/141551
Previously we would request the handle types with write access at the
start of every transform operation. Because the attribute arrays are
also used by the latest undo step, this would cause a reallocation of
the data and a copy. Instead only request write access if we're actually
going to modify the handle types.
This also lets us avoid tagging the topology cache unless the handle
types are actually changed.
Fix an issue with Copy to Selected on bones, where an RNA pointer was
given an owner of the wrong type.
A pointer was constructed to a `Bone` (which is owned by the
Armature), but the owner was taken from the corresponding `PoseBone`
(which is owned by the Object), causing Armature "property update"
callbacks to be called without an actual Armature. This caused the
wrong data to be tagged for re-evaluation, which caused the issue.
Also f04bc75f8c affected the Copy to Selected on edit bones.
Co-authored by Philipp Oeser
Pull Request: https://projects.blender.org/blender/blender/pulls/141394
For optimization, 58af30f9b9 caused the creation of TransData and
`recalc_data` for the `Rotate Normal` operation to be skipped. However
`recalc_data` may still be called if we cancel the operation thus
causing a crash.
The feature to display multiple objects in the UV and Image Editor was
added in 24d08e0bae.
This commit did not account the multi-edit mode feature, where there may
be more than one object currently being edited, causing some UVs to
display with a faded opacity.
To fix this, introduce a new `eObjectInfoFlag` flag to indicate this
state, populate it when syncing the object, and use the flag inside the
relevant shaders.
Pull Request: https://projects.blender.org/blender/blender/pulls/141254
When handles are selected but not the control point this will convert the types `auto` to `align` and `vector` to `free`
This adds `tag_topology_changed` to make sure the handle types are updated.
This also fixes a problem where `free` handle would not be transformed with the control point.
Implement following Curve objects #128638
Pull Request: https://projects.blender.org/blender/blender/pulls/141438
Material selection didn't support empty geometries. Geometry list can
have nullptrs, when meshes contain more than 16 materials, but some
materials slots are not actually used in the mesh.
Material selection used to still looped over all the materials and
tried to draw geometry that aren't there.
Regression from !139781
Pull Request: https://projects.blender.org/blender/blender/pulls/141608
Caused by a7b4137f3e. Callback was replaced by new click select
operator. This operator doesn't work due to missing keyitem pair in
every keymap which allows asset_shelf_popover. Adding keymap itself
wasn't sufficient, poll function was failing due to popover being closed
after click. Now fixed by forcing `activate()` inside
`force_activate_view_item_but`.
Pull Request: https://projects.blender.org/blender/blender/pulls/141263
When beveling a vertex with only 2 connected edges, the resulting
geometry was not selected.
Resolve by not only selecting the faces created by the bevel operation,
but also selecting the vertices created.
Note: apply the same change as before,
the LFS data has been manually pushed.
Ref !139691
Windows/Intel GPU crashes when descriptor buffer cannot be allocated
anymore. This PR enables a workaround by not using descriptor buffers.
In future we should investigate how to improve the GC of descriptor
buffers and review the limits.
Pull Request: https://projects.blender.org/blender/blender/pulls/141600
Switching back and forth between viewers with shortcuts doesn't trigger
the compositor to update as expected when inside a node group.
See PR description for an example file.
The issue was caused by a missing tree update.
Pull Request: https://projects.blender.org/blender/blender/pulls/141606