Commit Graph

141743 Commits

Author SHA1 Message Date
Campbell Barton
414e8984e5 Cleanup: replace goto with return values 2024-10-03 17:12:37 +10:00
Campbell Barton
569683aa90 Cleanup: don't use float return type for boolean checks 2024-10-03 17:10:31 +10:00
Campbell Barton
c860806919 Merge branch 'blender-v4.3-release' 2024-10-03 15:59:23 +10:00
Campbell Barton
5fa0e1fc8d AUTHORS: add 29 new authors 2024-10-03 15:56:48 +10:00
Campbell Barton
3e4dba8805 Merge branch 'blender-v4.3-release' 2024-10-03 15:02:32 +10:00
Campbell Barton
589da4acb5 Cleanup: keep end-of-function code comment last (#2) 2024-10-03 15:00:07 +10:00
Campbell Barton
ebb51364d4 Merge branch 'blender-v4.3-release' 2024-10-03 14:48:22 +10:00
Campbell Barton
9bdaa51bb4 Merge branch 'blender-v4.3-release' 2024-10-03 14:48:19 +10:00
Campbell Barton
9cc5ffa58c Merge branch 'blender-v4.3-release' 2024-10-03 14:48:17 +10:00
Campbell Barton
a9b977d256 Cleanup: sort CMake file lists 2024-10-03 14:46:26 +10:00
Campbell Barton
459c7c7f82 Cleanup: sort DNA rename (documented as sorted) 2024-10-03 14:44:12 +10:00
Campbell Barton
f489611ff3 Cleanup: keep end-of-function code comment last 2024-10-03 14:42:36 +10:00
Campbell Barton
21fa9c4e1d Merge branch 'blender-v4.3-release' 2024-10-03 13:34:53 +10:00
Campbell Barton
cb283c3cd9 Cleanup: suppress array-bounds warning with GCC 2024-10-03 13:25:15 +10:00
Campbell Barton
2fdfade51d Merge branch 'blender-v4.3-release' 2024-10-03 12:19:13 +10:00
Campbell Barton
9db8cb5ae4 Merge branch 'blender-v4.3-release' 2024-10-03 12:19:09 +10:00
Campbell Barton
ae9f02c433 Merge branch 'blender-v4.3-release' 2024-10-03 12:19:05 +10:00
Campbell Barton
1563ba7e6c Fix #128175: Updating extension can remove the extension on WIN32
On Windows an entire directory may be locked when any files inside it
are opened by another process. This can cause operations that
recursively remove a directory (uninstalling & updating) to fail
with a partially removed extension.

The case of uninstalling was already handled, where failure to remove
a directory would stage the extension for later removal.
In the case of updating however, the user could be left with a broken
(partially removed) extension where some files were removed, as the
directory was locked, the update would fail to extract new files.

Address this issue by renaming the directory before recursive removal.

The following logic has been implemented:

- If any files in the directory are locked, renaming will fail.
  So even though the operation fails the extension is left intact.

- If renaming succeeds, it's possible to apply the update.

  While it's possible (albeit unlikely) recursive removal fails,
  which could be caused by file-system permissions issues corruption or
  a process could open a file between rename & removal.

  In this case the renamed directory is staged for later removal.

Other changes:

- Resolve a related problem where the user could install an
  extension previously staged for removal, now installing an extension
  ensured it's not removed later.

  This would occur if uninstalling failed, the user resolves
  directory-lock, uninstalls again, then re-installs the extension.

- When an extension fails to be removed, don't attempt to remove
  user configuration for that extension.

  Prefer to keep the extension & it's settings in their "current state"
  if it can't be removed.
2024-10-03 12:15:27 +10:00
Campbell Barton
952e1d46d1 Cleanup: match declaration names, avoid shadowing & clear trailing space 2024-10-03 12:12:08 +10:00
Campbell Barton
4fa3dc0dd4 Cleanup: spelling in comments, use uppercase tags 2024-10-03 12:11:52 +10:00
Sean Kim
20accbe4cf Refactor: Group mode-specific Sculpt undo StepData into structs
Some fields of the `StepData` struct are only valid within certain PBVH
modes. This commit groups them so that they can eventually be further
consolidated.

Pull Request: https://projects.blender.org/blender/blender/pulls/128512
2024-10-03 00:54:47 +02:00
Pablo Vazquez
e55d54f46d Merge branch 'blender-v4.3-release' 2024-10-03 00:38:07 +02:00
John Kiril Swenson
d2a802d3c6 VSE: Remove timeline box select
Remove the box select tool from the timeline to simplify selection
logic, avoid confusion for users, and make maintaining the code
easier in the future. It also brings the selection system  closer
to other industry-standard NLEs.

It also fixes an issue caused by d2091b4b1.

More details in PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/128051
2024-10-03 00:37:00 +02:00
Pablo Vazquez
574d02af4c Merge branch 'blender-v4.3-release' 2024-10-03 00:29:56 +02:00
Pablo Vazquez
177e2ac837 Grease Pencil: Tool settings layout adjustments
Small adjustments to improve consistency in tool settings
between different tools.

Pull Request: https://projects.blender.org/blender/blender/pulls/128491
2024-10-03 00:28:50 +02:00
Sean Kim
afd51876b0 Cleanup: Various non-functional changes for sculpt_undo.cc
* Use const where possible
* Use reinterpret_cast instead of C-style cast for pointers
* Shorten variable names from vertices to verts

Pull Request: https://projects.blender.org/blender/blender/pulls/128466
2024-10-02 23:36:12 +02:00
Sean Kim
8477a273dd Merge branch 'blender-v4.3-release' 2024-10-02 13:52:18 -07:00
Sean Kim
4cefac0da3 Fix: Remove incorrect sculpt assert
Added in 4bc146f00a

Missed the valid case where one of the two spans could be empty.

Pull Request: https://projects.blender.org/blender/blender/pulls/128501
2024-10-02 22:50:35 +02:00
Jesse Yurkovich
65d56e6ae4 Merge branch 'blender-v4.3-release' 2024-10-02 10:54:53 -07:00
Jesse Yurkovich
4a679470b6 Fix: USD: collection creation during import assigned extra fake user
When using the `create_collection` parameter during import, the newly
created Collection would be assigned a fake user which isn't necessary
and caused the user count to be 2 instead of the more natural 1 here.

Remove the fake user and add test coverage for the scenario in general.

Pull Request: https://projects.blender.org/blender/blender/pulls/128348
2024-10-02 19:53:50 +02:00
Falk David
e97ea85e37 Merge branch 'blender-v4.3-release' 2024-10-02 18:58:17 +02:00
Falk David
07ed9b805d Fix: Compile error using clang
Clang doesn't allow to capture structured bindings in lambdas.
Instead, remove the structured bindings and just use a const
reference to the item iterator.
2024-10-02 18:56:01 +02:00
Falk David
bd1346968c Merge branch 'blender-v4.3-release' 2024-10-02 18:39:32 +02:00
Falk David
1829982d3b GPv3: Merge Layers Operator
This adds a function to merge layers in original Grease Pencil geometry.
It also adds an operator to merge layers as well as some tests for the `merge_layers` function.

The operator has 3 modes:
* `Merge Down`: Combine the active layer with the layer just below (if there is one).
* `Merge Group`: Combine all the layers in a group into one single layer and remove
  the group. Can be accessed in the right-click menu of groups.
* `Merge All`: Combine all the layers of the object into one single layer.

All of these can be accessed in the `Extras` menu next to the layer tree.

Pull Request: https://projects.blender.org/blender/blender/pulls/128201
2024-10-02 18:28:30 +02:00
Julien Duroure
db8790c685 glTF: Bump version to 4.4.0 after 4.3 branch creation 2024-10-02 17:47:37 +02:00
Bastien Montagne
7bc223375c Merge branch 'blender-v4.3-release' 2024-10-02 16:48:19 +02:00
Bastien Montagne
76e7770bc9 Python API: Add link/append pre/post handlers.
The `pre` handler is called after blender internal code is done populating
the link/append context with data to be processed, and before this data
starts being linked from library files.

The `post` handler is called after blender is done linking, and
potentailly appending and/or instantiating, the requested data and all
of their dependencies.

Both handlers are called with a single argument, the link/append
context.

An new RNA sets of wrappers have been added to expose relevant info from
these internal C++ structures.

NOTE: !113658 is very similar (but tied to asset drag & drop), whereas
this PR is more general (these could probably live hand-in-hand / side-
by-side).

Implements #122357

Pull Request: https://projects.blender.org/blender/blender/pulls/128279

-----------------

Some quick py example  code:

```python
import bpy

def my_handler_pre(lapp_context):
    print("About to {}:\n\t".format("link" if "LINK" in lapp_context.options else "append"),
          "\n\t".join("{} '{}', from libs ['{}']".format(item.id_type, item.name,
                                                         "', '".join([l.filepath for l in item.source_libraries]))
                      for item in lapp_context.import_items))

def my_handler_post(lapp_context):
    print("{}:\n\t".format("Linked" if "LINK" in lapp_context.options else "Appended"),
          "\n\t".join("{} '{}', from lib '{}'".format(item.id.id_type, item.id.name, item.source_library.filepath)
                      for item in lapp_context.import_items))

bpy.app.handlers.link_append_pre.append(my_handler_pre)
bpy.app.handlers.link_append_post.append(my_handler_post)
```
2024-10-02 16:44:38 +02:00
Sybren A. Stüvel
bd4f186ffb Merge remote-tracking branch 'origin/blender-v4.3-release' 2024-10-02 16:34:13 +02:00
Sybren A. Stüvel
b46e2e6300 Anim: remove Slotted Actions experimental flag from prefs in non-exp build
Remove the 'Slotted Actions' (`use_animation_baklava`) experimental flag
from the preferences RNA, in non-experimental builds.

The experimental flag is already zeroed out when loading the
preferences. This commit ensures that it stays zeroed out. The rest of
the code assumes that the flag is always `false` in non-experimental
builds.

Pull Request: https://projects.blender.org/blender/blender/pulls/128483
2024-10-02 16:32:17 +02:00
Sybren A. Stüvel
a380567679 Anim: avoid running LayeredInsertKeyTest in non-experimental build
Avoid running a Python unit test for layered Actions in non-experimental
builds.

Due to a misunderstanding, enabling the user preference for the 'Slotted
Actions' experimental feature is still possible on release builds, which
caused this test to fail on non-experimental builds (because it's
intentionally missing a chunk of experimental code).

No functional changes to Blender itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/128483
2024-10-02 16:32:15 +02:00
Sybren A. Stüvel
8c37b20dd5 Anim: enable more slotted action handling in non-experimental builds
Remove some `#ifdef WITH_ANIM_BAKLAVA` guards to make a unit test
succeed. The code is handling slots when assigning Actions to IDs.
Non-experimental builds will only deal with legacy Actions, and thus the
slot assignment is a no-op anyway.

The unit test is explicitly creating layered Actions and running tests
on them. Since this also covers some new code introduced for Action
assignments (unified code for both legacy & layered Actions), I'd feel
more comfortable keeping the test enabled.

Note that when loading a blend file with layered Actions in a
non-experimental build will actually load them as legacy Actions.

Pull Request: https://projects.blender.org/blender/blender/pulls/128483
2024-10-02 16:32:15 +02:00
Falk David
65004bede0 Merge branch 'blender-v4.3-release' 2024-10-02 15:20:55 +02:00
Falk David
1c2355c037 GPv3: Add mode toggle operators
This copies the legacy mode toggling operators to a new file
and renames the operators to use the `GREASE_PENCIL_OT` prefix
like the rest of the operators. No functional changes expected.

Pull Request: https://projects.blender.org/blender/blender/pulls/128477
2024-10-02 15:17:28 +02:00
Jacques Lucke
86dd6791c2 Fix: memory leaks when using BKE_grease_pencil_nomain_to_grease_pencil
This fixes two memory leaks:
* Drawings were not properly freed because `MEM_delete` was called on the DNA
  base type which does not have the destructor.
* `CustomData` of layers was not freed before it was overridden.

Pull Request: https://projects.blender.org/blender/blender/pulls/128476
2024-10-02 14:39:31 +02:00
Lukas Tönne
dfc8a782f5 GPv3: Attribute panel to configure layer attributes on original data
This follows the same pattern as attribute panels for Mesh, Curves, and
Point Cloud. Only the layer domain is supported. The _add_ operator now
has to validate the domain setting on invoke, because layer attributes
don't support the default `Point` domain.

Pull Request: https://projects.blender.org/blender/blender/pulls/128471
2024-10-02 13:58:13 +02:00
Falk David
a2c7a2548d Merge branch 'blender-v4.3-release' 2024-10-02 12:44:36 +02:00
Falk David
a25456eaf1 Fix: GP: UI errors when no layer tree node is active
The UI code assumed that either a layer or a group is always
active which is not always the case. It can happen that nothing
is active.
The fix makes sure the this case is handled correctly.
2024-10-02 12:41:11 +02:00
Falk David
9d5c5d4a93 Fix: GP: Wrong offset vector when drawing onto surfaces
The offset from the surface was calculated based on only the normal
which didn't used to be the case.
The fix computes the offset based on the surface point and the direction
of the view.
Also makes sure to not draw overlays when computing the depths using
`V3D_DEPTH_NO_GPENCIL`.
2024-10-02 12:39:43 +02:00
Thomas Dinges
4c47c7e634 Revert "Release cycle: Blender 4.3 Beta"
This reverts commit 906bc801f4.
2024-10-02 12:35:26 +02:00
Thomas Dinges
aabb6d8f1e Merge branch 'blender-v4.3-release' 2024-10-02 12:35:12 +02:00