Commit Graph

137234 Commits

Author SHA1 Message Date
Campbell Barton
07f5d32517 Merge branch 'blender-v4.2-release' 2024-06-10 00:25:35 +10:00
Campbell Barton
2007fc2029 Merge branch 'blender-v4.2-release' 2024-06-10 00:25:32 +10:00
Campbell Barton
96c179d77d Merge branch 'blender-v4.2-release' 2024-06-10 00:25:29 +10:00
Campbell Barton
ff720cde32 Merge branch 'blender-v4.2-release' 2024-06-10 00:25:22 +10:00
Campbell Barton
5fda92a44f Extension: defer loading extensions JSON/TOML meta-data until needed
Repositories JSON & manifests were being loaded at startup.
Lazily load this data to prevent unnecessary overhead.
2024-06-10 00:24:00 +10:00
Campbell Barton
b4ea8583ed WM: correct logic for resetting add-ons & caching meta-data
All add-ons were being scanned at startup, while this didn't cause
errors it was noticeable with extensions where any errors in the
manifest were being reported at startup, even when running with
factory-startup (including blender's own tests).

Address two issues:

- The logic to "reset" add-ons, so as to match the preferences when
  reverting or resetting preferences always ran on startup.
  This occurred because a check for Python being initialized was
  incorrectly used to detect that this wasn't the first time preferences
  were being loaded (regression in [0]).

- Resetting add-ons scanned all add-ons (including disabled add-ons) to
  ensure their module cache is up to date. Since this the cache is
  lazily initialized, it's simpler to set it as uninitialized as
  resetting the add-ons doesn't require the cached meta-data.

[0]: 497bc4d199
2024-06-10 00:22:56 +10:00
Campbell Barton
b7e0d7d1c3 Fix script_load_addons including add-ons from the users home directory
The add-on load test could fail depending on add-ons in user extension
repositories.

Remove all repositories before running the tests.

Also minor naming & comment edits.
2024-06-09 22:50:10 +10:00
Campbell Barton
ff5909e441 Extensions: restore the "Refresh" operator
The old add-ons UI had a "Refresh" operator that would re-scan
the file-system and show any changes.

Add an equivalent operator that works for both extensions and legacy
add-ons and add it to the extension menu.

This is useful for a few situations:

- Refresh based on changes to "System" repositories which are read-only
  from Blender and intended to be manipulated outside of Blender.
- Anyone managing their own "User" repository.
- For developers to create extensions, where re-starting to see changes
  to meta-data is inconvenient.
- Troubleshooting problems parsing extension meta-data as problems are
  reported to the operator.
2024-06-09 20:20:27 +10:00
Campbell Barton
231a56a272 Merge branch 'blender-v4.2-release' 2024-06-09 11:35:43 +10:00
Campbell Barton
db6703d976 Cleanup: remove unused variable 2024-06-09 11:35:07 +10:00
Campbell Barton
2f392ff0cc Cleanup: quiet switch warning 2024-06-09 11:21:53 +10:00
Harley Acheson
8937c0bcab UI: IDSearch Image Thumbnail Tooltips
Hover tooltips for the Data-block ID selector showing previews for
images, movies, and fonts and also showing extra details.

Pull Request: https://projects.blender.org/blender/blender/pulls/118945
2024-06-08 22:41:58 +02:00
Germano Cavalcante
79244e5632 Merge branch 'blender-v4.2-release' 2024-06-08 16:11:18 -03:00
Germano Cavalcante
965a138671 Fix #121025: Edge Slide not picking the correct reference edge
The occlusion test was considering the local position of the vertices
as being in world space.

The solution is to convert to world space first.
2024-06-08 16:07:29 -03:00
Germano Cavalcante
efd3c4b3c9 Fix #122896: Knife snap to edge fails when a vertex is behind the viewer
Although c9fa73a379 made the problem worse. The incorrect to snap to
edges when one of their vertices is behind the viewer is much older.

The problem occurred because, in perspective mode, when we project a
vertex with negative "zfac", its projected value is undefined as it
depends on the position of the other vertex.

Thus, both the distance test and the lambda in these cases were wrong.

The solution was to calculate the snap point directly in 3D, using
`closest_ray_to_segment_v3` and avoiding projecting the edge.
2024-06-08 12:09:25 -03:00
Germano Cavalcante
85f026f478 Cleanup: Move closest_ray_to_segment_v3 logic from snapping code to BLI 2024-06-08 12:09:24 -03:00
Clément Foucault
fb7d5e49d3 Fix: EEVEE-Next: Shadow: Very low resolution shadow in viewport
This was caused by the base page tagging.

Since that the base page is now required for fixing
soft shadows, it would be the first level to be rendered
which, combined with the update throttle, lead to only
the min LOD to be available when the shadow was updated
in viewport.

This was affecting the jittered shadows, animation update
and viewport transform.

The fix is to only request the base page after throttling
the updates and only if there is no other LODs to be
rendered. This mean jittered shadow in viewport might
become affected by the missing base page artifacts, but
this is less noticeable than huge light leaking.
only if
2024-06-08 16:58:52 +02:00
Bastien Montagne
d19d23e91f Cleanup: IDProperty: Add an enum type to idprops flags. 2024-06-08 16:51:20 +02:00
Bastien Montagne
cf3323fe32 Merge branch 'blender-v4.2-release' 2024-06-08 16:29:50 +02:00
Bastien Montagne
f59f5fd83f Fix #122901: Geonodes modifier- setting an imput as string crashes blender.
Regressions (typo) from 57669600b1.
2024-06-08 16:26:28 +02:00
Campbell Barton
c4c3812894 Merge branch 'blender-v4.2-release' 2024-06-08 23:34:48 +10:00
Campbell Barton
3412a34145 Merge branch 'blender-v4.2-release' 2024-06-08 23:34:46 +10:00
Campbell Barton
b0232b4e0e Cleanup: various warnings from pylint for extensions & addons 2024-06-08 23:33:45 +10:00
Campbell Barton
5f06d3aa17 Extensions: consider system repositories read-only
The following operations have been removed for system repositories:

- Installing from disk.
- Uninstall extensions.
- Delete files (when removing the repository).

Also change the operator to remove a repository so the option to
remove files is now a boolean instead of an enum. While a dynamic
enum can be made to work, this option is logically a boolean.
2024-06-08 23:04:17 +10:00
Campbell Barton
4a613911a3 Merge branch 'blender-v4.2-release' 2024-06-08 13:46:45 +10:00
Campbell Barton
79ca7b7965 Merge branch 'blender-v4.2-release' 2024-06-08 13:46:42 +10:00
Campbell Barton
c0c1f1884a Merge branch 'blender-v4.2-release' 2024-06-08 13:46:38 +10:00
Campbell Barton
09ae9377f1 Extensions: reduce the timer frequency to avoid too much overhead
Since these actions are no longer blocking, 100 times a second could
add unnecessary overhead (although updates are only shown when changes
are detected). Nevertheless, reduce the frequency to 10 times a second.
2024-06-08 13:32:26 +10:00
Campbell Barton
4547f4106a Extensions: use the operators cancel callback shutdown processes
When installing extensions, the user could exit Blender which wasn't
being handled properly - the processes would be left running and raise
a broken pipe error (on Linux).

Resolve this by canceling the processes, matching the behavior of when
escape is pressed.

This means exiting Blender while installing/updating wont leave the
repositories in an unknown state.
2024-06-08 13:32:25 +10:00
Campbell Barton
4718d68349 Extensions: expose extensions debug option in release builds
These are useful for more verbose output and expose useful utilities
for development.
2024-06-08 13:32:24 +10:00
Clément Foucault
3f247d6a3c Fix: GPU: Make tests compile 2024-06-08 00:25:40 +02:00
Germano Cavalcante
cf73d80deb Merge branch 'blender-v4.2-release' 2024-06-07 17:59:51 -03:00
Germano Cavalcante
4690c69a65 Fix #122787: Grid snap in UV Editor also snaps to vertices
The `Snap to Grid` and `Snap to Vertex` modes were being mixed if
either mode was enabled.

Support for mixed snap modes doesn't yet fully work for UVs.
2024-06-07 17:58:45 -03:00
Jesse Yurkovich
77baa064ce Merge branch 'blender-v4.2-release' 2024-06-07 13:29:15 -07:00
Jesse Yurkovich
e24eb7d85c Fix #122820: Collection export would dirty the file
The various collection export operators had their flags set for undo.
This isn't necessary and would cause the .blend file to be marked dirty.

Pull Request: https://projects.blender.org/blender/blender/pulls/122864
2024-06-07 22:28:07 +02:00
Germano Cavalcante
6bf9d6f038 Merge remote-tracking branch 'origin/blender-v4.2-release' 2024-06-07 16:45:33 -03:00
Germano Cavalcante
2cb8b4b7f7 Fix #122438: Orbit Around Selection drastically moves view
When starting a navigation operation that uses `Auto Depth` or
`Orbit Around Selection` the value of `#RegionView3D::dist` is modified
to match the distance from the new pivot.

This value was incorrect when the pivot was behind the viewer.

In these cases `dist` is negative.

This commit, in addition to fixing `dist`, also limits the execution of
this code to only when `Auto Depth` is used.

Pull Request: https://projects.blender.org/blender/blender/pulls/122795
2024-06-07 21:41:50 +02:00
Hans Goudey
a6d00905f0 Cleanup: Sculpt: Simplify retrieval of multires draw buffers layout
Pull Request: https://projects.blender.org/blender/blender/pulls/122899
2024-06-07 21:35:21 +02:00
Hans Goudey
5013ab90f6 Cleanup: Sculpt: Rename PBVH draw multires variable
Everything here is drawn as triangles in the end, and currently we use
index buffers either way, so "needs_tri_index" isn't a meaningful name.
What this really controls is whether the layout is flattened to duplicate
each subdiv vertex 4 times, for drawing flat shading.
2024-06-07 21:35:19 +02:00
Hans Goudey
8df0690ab4 Sculpt: Optimize mesh wireframe index buffer creation
Retrieve the index buffer data as a span and set it directly rather than
using the API functions to add vertices which add overhead. Also pass
all the necessary data as arguments instead of retrieving them from
the "args" struct on every use.

In a test with a 16 million vertex grid, this reduces the runtime of
generating all the wireframe index buffers by about 25%, from 95 to 76 ms
for that step of the drawing process.
2024-06-07 21:35:19 +02:00
Hans Goudey
0d9d6fad41 Cleanup: Sculpt: Remove unnecessary draw debugging code 2024-06-07 21:35:19 +02:00
Hans Goudey
a9907c4ed9 Sculpt: Fix over-allocation of wireframe index buffers
The lines index buffers were twice as big as they needed to be.
The init function already multiplies by the number of indices in
the primitive type.
2024-06-07 21:35:19 +02:00
Hans Goudey
39894f4beb Sculpt: Avoid double map lookup creating draw batches 2024-06-07 21:35:19 +02:00
Hans Goudey
279fda3dcd Cleanup: Sculpt: Reorder function to avoid forward declaration 2024-06-07 21:35:19 +02:00
Hans Goudey
c18d209b85 Refactor: Sculpt: Move some drawing code out of classes
Most functions in `draw_pbvh.cc` are inside of the `PBVHBatch` or
`PBVHBatches` classes, besides the more recently added attribute
copying code. This means they have access to "all the information"
and it's hard to get a sense for the proper order of calculation and
what each function is responsible for. This commit is an attempt to
clarify things a bit by changing to regular static functions.
2024-06-07 21:35:19 +02:00
Hans Goudey
dc0fe8a26c Cleanup: Sculpt: Remove unnecessary variables from draw batches
lines_count was set but never used. tris_count was the same in one
case and just set to the same value as faces_count in another.
2024-06-07 21:35:19 +02:00
Hans Goudey
fd992c57bf Cleanup: Sculpt: Avoid unnecessary clearing of index buffers 2024-06-07 21:35:19 +02:00
Harley Acheson
07652497a1 Merge branch 'blender-v4.2-release' 2024-06-07 11:21:30 -07:00
Harley Acheson
d08cebf6d7 Fix #122838: Save and Removal of Themes with Multi-Word Names
In Preferences / Themes you can add a new theme with a name that has
multiple words and the resulting file name will have spaces converted
to underscores. Unfortunately such multi-word themes will not pass the
poll function for saving and deletion. This PR just adds calls that
convert from the display name to file name in order for these to work.

Pull Request: https://projects.blender.org/blender/blender/pulls/122848
2024-06-07 20:20:06 +02:00
Hans Goudey
8cac7bc6cc Cleanup: Sculpt: Use CCG grid index access utility in drawing code 2024-06-07 13:39:12 -04:00