Commit Graph

100069 Commits

Author SHA1 Message Date
Iliya Katueshenock
05d3eb5eea Geometry Nodes: Parallelelize a delete geometry selection conversion
Parallelize the conversion of an edge selection to a vertex selection,
which makes it approximately twice as fast (0.6 ms -> 0.3 ms).
In another test the whole node operation became about 17% faster,
from 6.9 to 5.9ms. This only applies to the "All" mode with the
edge selection domain.

Similar to 3d209d1619

Pull Request: https://projects.blender.org/blender/blender/pulls/108541
2023-06-02 20:27:42 +02:00
Germano Cavalcante
c1edeb573b Fix unused function after c4a4a89ef5
`applyTrackballMatrix` was unused after c4a4a89ef5.

Trackball supports `transform_matrix_fn` although currently not being
used.

This callback is used in the drawing of gizmos.
2023-06-02 15:04:59 -03:00
Richard Antalik
4a81c417c1 Cleanup: Fix build warnings 2023-06-02 19:18:33 +02:00
Julian Eisel
4fad870c4d Merge branch 'blender-v3.6-release' 2023-06-02 18:19:52 +02:00
Julian Eisel
4832114d60 Fix #107870: Movie Clip Editor hangs in "Clip" view
Because of how the Clip Editor managed region state for different view
modes before region polls were introduced (fa0f295b53), regions could be
written to files in a state that's not valid for displaying them. State
for clip editors written to files is corrected with versioning now.
2023-06-02 18:19:23 +02:00
Richard Antalik
6d215b87ce VSE: Freeze frame feature for retiming tool
Freeze frames can be added now using retiming tool with no need to hold
splitting strips or using hold offsets. To use this feature, add
retiming handle where you want to freeze the frame, hold ctrl key and
drag the handle. It is not possible to freeze frame of transition handle
and it is not possible to add transition to or from freeze frame.
Retiming system would handle these cases, but they are not useful in
practice.

When freeze frame is created, start handle of frozen segment is flagged
as `FREEZE_FRAME`. Most handling is similar to `SPEED_TRANSITION`
type handle. For evaluation, there is no special case for this type, as
it's just 2 handles with same `retiming_factor` value. It is possible to
recreate this behavior without using freeze frame feature by adding
handle between 2 consecutive content frames, but this would not be
recognized by UI or treated as freeze frame segment/handle.

Eventually this feature should replace hold offsets, leaving `Sequence`
struct with single offset type, see PR 105620 for reference.
2023-06-02 18:02:14 +02:00
Harley Acheson
c033e434c5 UI: Allow Opacity for Theme Outline Colors
Allow setting opacity with color for uiWidgetColors outline and for
tab_outline.

Pull Request: https://projects.blender.org/blender/blender/pulls/108248
2023-06-02 17:20:51 +02:00
Nathan Vegdahl
f63c56e05c Fix: action's actual users and recorded user count could diverge
The user count decrement and unassigning the action were split
between two different conditionals, which weren't guaranteed
to both execute/not-execute together.
2023-06-02 16:03:26 +02:00
Jeroen Bakker
c8bd998944 Vulkan: Fix Debug Messenging
In the specification of validation layers it is mentioned that
the messenger should always return VK_FALSE. When this isn't the
case VK_ERROR_VALIDATION_FAILED_EXT will be returned and the
API command will fail.

This PR will always return false.

Pull Request: https://projects.blender.org/blender/blender/pulls/108545
2023-06-02 15:41:09 +02:00
Bastien Montagne
d4068e375f Merge branch 'blender-v3.6-release' 2023-06-02 15:26:34 +02:00
Bastien Montagne
d847851000 Fix #108285: Crash in Outliner when using RNA ID remapping API call.
RNA API call was not updated UI in anyway.
2023-06-02 15:26:04 +02:00
Bastien Montagne
5ce0f80ed6 Fix #108285: Remap Users operator doesn't work on Objects.
Objects were excluded from the ID operation, as originally they had
their own entry in their own menu. Joys of nightmare tools handling in
the Outliner...
2023-06-02 15:26:04 +02:00
Falk David
32982dda26 GPv3: Add initial edit mode overlay support
This PR adds basic overlay support for `OB_GREASE_PENCIL`.
Currently it only renders the points and their selection status based on the ".selection" attribute.

Pull Request: https://projects.blender.org/blender/blender/pulls/108511
2023-06-02 15:12:49 +02:00
Falk David
4f977ad56f Merge branch 'blender-v3.6-release' 2023-06-02 15:07:18 +02:00
Sietse Brouwer
a784a65dbe Fix #108473: unreliable auto-normalize results when weight painting in GPencil
Painting weights in Grease Pencil with the auto-normalize option enabled,
gave unpredictable results when vertex groups with a weight of zero
were involved.
This patch resolves the issue. Vertex weights of zero are excluded from
auto-normalization. Which is a better fit for the Grease Pencil workflow,
where weights are mostly painted from scratch since the 'parent to
armature with automatic weights' operator doesn't give good results.

Pull Request: https://projects.blender.org/blender/blender/pulls/108524
2023-06-02 15:04:19 +02:00
Sietse Brouwer
25952b865d Fix #108475: no helpful tooltips for Vertex Paint tools in Grease Pencil
The tools in Vertex Paint mode in Grease Pencil were missing clear
descriptions. This patch adds them, based on the descriptions in
the manual.

Pull Request: https://projects.blender.org/blender/blender/pulls/108522
2023-06-02 15:02:39 +02:00
Germano Cavalcante
c4a4a89ef5 Transform: refactor modes by reorganizing their data in 'TransModeInfo'
No functional changes.

This commit reorganizes the transform mode functions by bundling them
into a struct called `TransModeInfo` in the file.

This structural change enhances the readability of the transform code
and simplifies the process of adding or removing modes.

Furthermore, this refactor allows for the inclusion of other essential
mode-specific values, such as 'input', which cannot be separated from
the code.

Overall, this commit improves the maintainability and extensibility of
the transform functionality.

Pull Request: https://projects.blender.org/blender/blender/pulls/108467
2023-06-02 14:42:27 +02:00
Iliya Katueshenock
457f423719 Fix #108537: Incorrect early return in delete geometry node
Fix after 50bfe1dfe3. Early return can be for unchanged
all geometry domains only.

Pull Request: https://projects.blender.org/blender/blender/pulls/108540
2023-06-02 14:23:56 +02:00
Julian Eisel
2d0bd33eda Merge branch 'blender-v3.6-release' 2023-06-02 12:28:00 +02:00
Julian Eisel
a6e1caa1b2 Fix file/asset browser document type icons using wrong theme color
Steps to reproduce were:
- Open File Browser, set it to Thumbnails display mode, disable filters
- Navigate to a directory with documents that have no preview
- Change Preferences > Themes > User Interface > Icon Colors > File
  Folders to light and dark colors
- See how the type icons on top of the white document icon image get
  changed unexpectedly. Only type icons drawn on top of folder icon
  images should change.

When drawing the document type icons on top of the folder or document
image in the center of thumbnails, they would always use the folder icon
color (Preferences > Themes > User Interface > Icon Colors > File
Folders) to determine if they should be drawn with a light or a dark
color. It should only use that when drawing on top of a folder icon
image, and the color for document icon images otherwise.
2023-06-02 12:27:45 +02:00
Christoph Lendenfeld
e73b9c95f5 Refactor: Bidirectionality on Graph Editor Sliders
This PR changes the ranges of some of the operators in the Graph Editor to be more logical

The following operators have been modified to with a range of -1/1 with the default of 0
*  Blend to Neighbor
* Breakdown
* Ease

This is a breaking change because python calls to these operators will now yield different results
(e.g. Blend To Neighbor at 0 does nothing now, while before it did blend to the left neighbor)

Pull Request: https://projects.blender.org/blender/blender/pulls/107173
2023-06-02 12:22:31 +02:00
Dalai Felinto
390f8fef76 Merge remote-tracking branch 'origin/blender-v3.6-release' 2023-06-02 11:10:45 +02:00
Dalai Felinto
9d00d13767 Fix #108501: Image Editor glitch after texture painting undo
When doing the second undo, the image wasn't properly marked for full
update.

There reason was that in some cases the partial_updater was
totally reconstructed: `first_changeset_id` and `last_changeset_id` were both 0.

While the `user_imp->last_changeset_id` was still its last value (e.g., 3).

The fix is to have the partial updater validator to check for the
last change set as well (it was only checking for the first change set).

This way we cover both scenarios when user_imp->last_changeset_id is out
of the range of the partial update history.

Pull Request: https://projects.blender.org/blender/blender/pulls/108533
2023-06-02 11:09:38 +02:00
Jeroen Bakker
30de07199a Vulkan: Some tweaks to the messenger
- Removal of Vulkan version number
- Removal of object counts
- Put objects next under the message

Pull Request: https://projects.blender.org/blender/blender/pulls/108531
2023-06-02 10:12:32 +02:00
Kazashi Yoshioka
a4249588cd Vulkan: Debug Messages
This change will register a callback to Vulkan debug messaging
allowing us to filter out messages and log them using CLog.

This change only provides the initial changes, and more tweaks
are expected to on formatting and filtering.

Pull Request: https://projects.blender.org/blender/blender/pulls/107635
2023-06-02 09:50:30 +02:00
Campbell Barton
553e221c76 PlayAnim: display that a buffer fails to load instead of exiting
Failure to load an image-buffer during animation playback would exit,
display a text warning instead because it could potentially
exit during user interaction/playback.
2023-06-02 14:11:54 +10:00
Germano Cavalcante
a83a0a811f Transform: Remove internal mode 'TFM_TIME_DUPLICATE'
No functional changes.

`TFM_TIME_DUPLICATE` is basically the `TIME_TRANSLATE` or `TRANSLATE`
modes.

The difference is that `TFM_TIME_DUPLICATE` merge duplicates keyframes
at the end of the operation.

It is an unexposed mode in python and promotes code duplication.

It has a similar initialization to `TIME_EXTEND` which redirects to
`TIME_TRANSLATE` or `TRANSLATE` depending on the spacetype.

As it is dependent on other modes (as well as `TIME_EXTEND`), it makes
things a bit more confusing.

There's no real benefit to creating a new internal mode just to
indicate this small change (merge duplicates).

So indicate in another way (by properties) that you want to merge
duplicate keyframes.
2023-06-02 01:07:59 -03:00
Campbell Barton
64aa96d421 Fix failure to paste material color alpha & paste line-art
Error in [0] excluded these members from pasting.

[0]: 5177e2f20b
2023-06-02 13:50:14 +10:00
Campbell Barton
168b66461d Merge branch 'blender-v3.6-release' 2023-06-02 13:39:22 +10:00
Campbell Barton
eae85468ee Merge branch 'blender-v3.6-release' 2023-06-02 13:39:20 +10:00
Campbell Barton
07371c772b Merge branch 'blender-v3.6-release' 2023-06-02 13:39:17 +10:00
Campbell Barton
6325673a0a Merge branch 'blender-v3.6-release' 2023-06-02 13:39:15 +10:00
Campbell Barton
d0a8e23cd4 Merge branch 'blender-v3.6-release' 2023-06-02 13:39:11 +10:00
Campbell Barton
12240499ac Fix/workaround crash pasting MTex
Pasting MTex referenced Texture & Object data-blocks without any
check for their validity.

This isn't ideal as it doesn't handle re-allocated ID's,
it just prevents a crash referencing freed data-blocks.
2023-06-02 13:37:58 +10:00
Campbell Barton
58a08f9ea1 Cleanup: use local utility functions for clipboard file-paths
Also rename pose paste `tmp_bmain` to match the name used in copying.
2023-06-02 12:46:58 +10:00
Germano Cavalcante
c2846f6b81 Transform: Remove 'Resize' fallback from 'Shrink/Fatten'
There are no relevant functional changes.

This commit removes the `Resize` fallback from `Shrink/Fatten`
operation.

This fallback is supposedly executed when the operation is called in a
mode other than mesh editing.

But even the `poll` of the `transform.shrink_fatten` operator restricts
its operation only for edit mode.

Furthermore, the fallback scenario is hardly encountered. To trigger
the fallback, the user would need to explicitly define, in the global
keymap, the `transform.transform` operator with the `Shrink/Fatten`
mode on and call it in a mode other than mesh editing.
(Although `transform.resize` could be used instead).

Therefore, considering the lack of benefits in using this resource, it
is better to remove it and prevent its use. Thus, simplifying the code.
2023-06-01 23:31:55 -03:00
Campbell Barton
118a47b7f6 Cleanup: quiet warnings
Resolve undeclared function & dangling reference warning.
2023-06-02 12:21:56 +10:00
Campbell Barton
5177e2f20b Fix #108495: Pasting a material crashes
References to data-blocks in a material were stored in-memory and could
crash if the data-blocks referenced by the material no longer existed
when pasting.

Resolve by using a blend-file for material copy/paste, matching how the
clipboard works in the 3D view-port.

Currently there is no support for including indirectly linked
data-blocks when pasting the material. Instead, data-blocks are restored
by name, by inspecting the current file.

This also fixes a crash where the `SpaceNode::nodetree` could point to
freed memory when pasting a material.

Ref !108496.

Includes contributions by @mont29.
2023-06-02 10:16:30 +10:00
Campbell Barton
9b97123bf9 Cleanup: spelling in comments, odd comment block spacing 2023-06-02 10:16:16 +10:00
Campbell Barton
f47aa50d7e Cleanup: format 2023-06-02 10:16:14 +10:00
Harley Acheson
7372b3bdda Fix Build Warning of Unused Function
My prior commit omitted the assignment of an operator callback setting
a custom description.

Introduced in #104678
2023-06-01 09:50:27 -07:00
Julian Eisel
83047bed26 Correction to b1b8091667: Use utility function
Avoid duplicated query.
2023-06-01 17:54:24 +02:00
Harley Acheson
a58e5ccdec UI: File Save Incremental Operator
Operator for the TopBar File Menu that saves the currently open file
with a numerically incremented name.

Pull Request: https://projects.blender.org/blender/blender/pulls/104678
2023-06-01 17:34:57 +02:00
Julian Eisel
b1b8091667 Fix 106976: Crash when setting custom asset preview
When the temporary File Browser uses a maximized editor, it reuses the
File/Asset Browser under the cursor. When the file browsing action is
confirmed, the old editor state is restored but the file-list cleared,
so it fails to find the active asset and the ID it represents in
context.

Work around this by getting the ID before spawning the File Browser from
the operator.
2023-06-01 17:32:27 +02:00
Falk David
612f6fd8d3 Add credit for static data
Credit the author of the default grease pencil Suzanne.
2023-06-01 17:12:18 +02:00
Falk David
7e115a056e Cleanup 2023-06-01 17:09:57 +02:00
YimingWu
95f1d8289c GPv3: "Add Suzanne" option in Add operator
This patch moves the "Add Suzanne" option to the new data structure.

Pull Request: https://projects.blender.org/blender/blender/pulls/108503
2023-06-01 16:39:47 +02:00
Julian Eisel
c08282f468 Fix invalid UI panel bit-flag value
These bit-flags were passed around in `short`s which can hold 16 bits
usually, but the enum defined 17 flags.
2023-06-01 16:03:55 +02:00
Hans Goudey
9e9e0bf6d0 Geometry Nodes: Copy no loose vert/edge status in delete geometry node
When the loose edge and vertex status are cached in the source mesh and
the combination of selection domain and mode don't add loose elements,
copy the cache status to avoid recomputation. In a test with a 1 million
face grid:
- All: 23 -> 30 FPS
- Only faces: 22 -> 23.5 FPS
- Only edges and faces: 24 -> 27 FPS

Also remove unnecessary includes and fix a build error introduced in
the last commit to this area from an inconsistent forward declaration.
2023-06-01 10:02:37 -04:00
Jason Fielder
3788f70647 Fix #107704: Release infrequently used memory in Metal buffer pools
Excessive memory pool bloating could occur for certain workloads in
Metal. Particularly those which continuously allocate increasingly
large buffers with minimal re-use of existing buffers.

New logic added to the memory pool flushes old buffers if they
have not been used for a set period of time. Timing is calibrated
against system resources and overall memory pressure.

Metal memory pressure will run higher than OpenGL, however,
this is an active decision to provide significant performance
improvements for scenarios which allocate lots of memory and
for keeping frames queued in flight without stalling on pending
GPU work.

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/108083
2023-06-01 15:48:30 +02:00