Commit Graph

146655 Commits

Author SHA1 Message Date
Clément Foucault
a6364eae75 DRW: Make vertex format threadsafe
Wrapping the vertformat into lambda expression to make
them threadsafe.

Pull Request: https://projects.blender.org/blender/blender/pulls/134685
2025-02-17 18:24:31 +01:00
Hans Goudey
dd03a322fe Point Cloud: Implement selection pick operator 2025-02-17 12:11:07 -05:00
Hans Goudey
45094542ff Point Cloud: Implement duplicate operator 2025-02-17 12:11:07 -05:00
Hans Goudey
9714946fca Point Cloud: Add transform operations to keymap 2025-02-17 12:11:06 -05:00
Hans Goudey
901b18d17b Point Cloud: Add cached full points BVH tree
Instead of rebuilding the BVH tree every time it's requested.
2025-02-17 12:11:06 -05:00
Clément Foucault
00c3b564b8 Fix: EEVEE: Unitinialized gpu::Batch array content
This lead to a crash in many cases at destruction time.
2025-02-17 17:49:07 +01:00
Bastien Montagne
1b989a3b91 Merge branch 'blender-v4.4-release' 2025-02-17 17:33:15 +01:00
Guillermo Venegas
f0d6391bd9 Fix: quiet warning const qualifier is applied to a function type
This avoids to adding const to the function type in a function pointer
while enabling `Span<FunctionType*>(Span<FunctionType*>)` ctor.

`Span<const FunctionType*>` should be considered invalid.

The warning: https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4180?view=msvc-170

Pull Request: https://projects.blender.org/blender/blender/pulls/134425
2025-02-17 16:28:56 +01:00
Julian Eisel
152c6c54e4 Cleanup: Improve API comment for MEM_new()
194e233d86 caused a discussion in the chat about the initialization
behavior of `MEM_new()`, and agreement was to not rely on
zero-initialization ever. Noted this in the API comment now.

Some people found the existing comment useful but it still left some
questions. Tried to clarify that now.

This is a crucial memory management function, it's important to have
behavior documented well, even if a full explanation is out-of-scope.
Also added another link in case people want to check more details.

Pull Request: https://projects.blender.org/blender/blender/pulls/134577
2025-02-17 16:18:04 +01:00
Guillermo Venegas
f2b6b6c232 UI: Prevent button vector reallocations on redraws
A bunch of reallocations can be avoided this way, usually the amount of buttons
is quite similar over redraws.

Pull Request: https://projects.blender.org/blender/blender/pulls/134580
2025-02-17 16:03:45 +01:00
Omar Emara
8dbd607df5 Merge branch 'blender-v4.4-release' 2025-02-17 16:57:36 +02:00
Omar Emara
003fb98f9d Fix #134567: Compositor memory leak in some setups
The compositor leaks memory in certain setups where a transformed result
is linked to two inputs in the same pixel node. This happens due to an
overestimation in the computation of reference counts of those results.
Since pixel operations might share the same input for multiple links in
the node tree, the reference count should be corrected to take that
sharing into account.

This sharing was previously accounted for as part of releasing inputs in
the pixel operation, but input processors didn't take that into account,
so the realize on domain input processor would leak memory. So to fix
this, we correct the reference count at the evaluator level instead,
such that input processors can safely operate on the correct reference
count.

Pull Request: https://projects.blender.org/blender/blender/pulls/134666
2025-02-17 15:55:22 +01:00
Bastien Montagne
48b12c6deb I18N: Updated UI translations from git/weblate repository (a5066e76fb25f0). 2025-02-17 15:25:44 +01:00
Clément Foucault
2cd15cdfef Overlay: Remove static GPUVertFormat
Makes this code threadsafe
2025-02-17 14:53:18 +01:00
Clément Foucault
b73c06ada0 Fix: Metal: Avoid overriding GPU matrices after shader bind
This was a bad usage of the Matrix API.
This fixes 2D and 3D cursor being broken on Metal.
2025-02-17 14:47:15 +01:00
Jeroen Bakker
51dc3063bf Merge branch 'blender-v4.4-release' 2025-02-17 14:14:45 +01:00
Jeroen Bakker
ed5b077f92 Fix #134634: Overlay: Mask not drawing on top of render result/viewer
Logical error in the overlay engine. Moved mask drawing before the early
exit for viewer/render results.

Pull Request: https://projects.blender.org/blender/blender/pulls/134660
2025-02-17 14:14:12 +01:00
Jacques Lucke
cb96dc34fa Merge branch 'blender-v4.4-release' 2025-02-17 12:38:50 +01:00
Clément Foucault
5b6f4d4759 Cleanup: DRW: Remove unused API functions
Pull Request: https://projects.blender.org/blender/blender/pulls/134461
2025-02-17 12:37:53 +01:00
Jacques Lucke
78b5c47c46 Fix #134669: crash because of dangling socket declaration pointer 2025-02-17 12:37:23 +01:00
Clément Foucault
d3b3cbec84 Sequencer: Move 2D cursor drawing from DRW to sequencer using IMM API
This avoid the dependency on the draw module and remove the
access to a global variable.

# Conflicts:
#	source/blender/editors/space_sequencer/space_sequencer.cc
2025-02-17 12:37:19 +01:00
Clément Foucault
38ce310c17 Overlay: Move 3D cursor drawing to the overlay engine
This is the more logical place and remove the use of the global
batch cache.
2025-02-17 12:36:34 +01:00
Clément Foucault
28ad3736e8 DRW: Move cube batch generation to GPU module
Avoid access on global DRWShapeCache and still
share the code for batch creation.
Each module is then responsible owner of their
own batch.
2025-02-17 12:36:34 +01:00
Clément Foucault
e55897448a DRW: Move sphere batch generation to EEVEE
Avoid access on global DRWShapeCache.
2025-02-17 12:36:34 +01:00
Clément Foucault
c91d60cda5 DRW: Move procedural batch to GPUContext
This remove relying on a global for storing
the batch and allow for more streamlined usage
of procedural drawing.
2025-02-17 12:36:34 +01:00
Clément Foucault
db920add50 Cleanup: DRW: Remove unused functions and batch inside the shape cache
These are not used since Overlay next that handles its own shape cache.
2025-02-17 12:36:33 +01:00
Richard Antalik
2a44bdfbd0 Refactor: Use C++ types for vectors strip image transform code
All 2D vectors related to image transform code were changed to float2.
Previously, it was decided, that 4x4 matrix should be used for 2D
affine transform, but this is changed to 3x3 now.

Texture painting code did rely on `IMB_transform` with 4x4 matrix.
To avoid large changes, I have added function
`BLI_rctf_transform_calc_m3_pivot_min`.

Main motivation is cleaner code - ease of use of c++ API, and avoiding
returning values by arguments.

Pull Request: https://projects.blender.org/blender/blender/pulls/133692
2025-02-17 11:23:00 +01:00
Andrej730
b9bbf48841 Fix: PyDocs typing issue with lists
Fixed use of lists using multiple arguments - `list` only
support a single argument.

Noticed working with fake-bpy-module - providing multiple
arguments to `list` resulted in typing error (e.g. "Too many type
arguments provided for "list"; expected 1 but received 2").

Pull Request: https://projects.blender.org/blender/blender/pulls/134663
2025-02-17 10:58:11 +01:00
Bastien Montagne
8ad740ae95 API Docs: Add some more precisions about calling __init__ for Blender-derined classes.
Hopefully will avoid confusion like in #134600.
2025-02-17 10:49:04 +01:00
Falk David
1a071ef755 Fix #134490: Grease Pencil: Clone brush in sculpt mode not working
The main issue was that the code was using
`foreach_editable_drawing_with_automask` which shouldn't have been
the case since there is no "masking" to be done when pasting strokes.

Additionally the code was computing the view position of every
pasted point and then computing the offset to move the points to the
mouse position.

Instead, we compute the center of the 3d bounds of the pasted strokes
and then project only the center to the view. From there we can offset
all the points to move them under the mouse cursor.

It's a bit weird to do this projection of the center to the view and
I believe we mainly do it to reuse the `DeltaProjectionFunc`.
There are cases where the projection of the center to the view will fail
which can lead to unexpected behavior on the user end. For now we
just leave the pasted strokes where they were copied from, which
isn't ideal. But this can be improved later.

Pull Request: https://projects.blender.org/blender/blender/pulls/134589
2025-02-17 10:38:02 +01:00
Jeroen Bakker
f89a075015 Merge branch 'blender-v4.4-release' 2025-02-17 08:58:44 +01:00
Jeroen Bakker
0faba244a5 Fix: Vulkan: Async readback of storage buffers
The vulkan backend was implemented with async in mind, however the one place
where Blender uses for async was implemented blocking. This PR splits the
readback into flushing the command and waiting for readback.

**Performance**

Improvement of animation playback performance of shader balls.blend is around 10%.
Shader balls.blend frame: 1-100, 10 x animation playback

| Branch               | Total time | Average time |
| -------------------- | ---------- | ------------ |
| blender-v4.4-release | 26851 ms   | 2685 ms      |
| This PR              | 23675 ms   | 2367 ms      |

Pull Request: https://projects.blender.org/blender/blender/pulls/134227
2025-02-17 08:58:06 +01:00
Dalai Felinto
645242dcc4 Fix: Point cloud keymap not working
Pull Request: https://projects.blender.org/blender/blender/pulls/134638
2025-02-17 08:44:05 +01:00
Hans Goudey
cd04584412 Point Cloud: Implement transform operator
This ends up being very simple because point cloud has
no connectivity information and each element is just one
position.

Also implement the 3D transform gizmo.

The geometry deformation system isn't implemented in this
commit. That can be tacked later.
2025-02-16 23:36:04 -05:00
Hans Goudey
62b568d393 Point Cloud: Implement box, circle, lasso select tools
Signficantly simplified versions of the similar curves code.
These require #134623 to function.
2025-02-16 22:48:35 -05:00
Hans Goudey
75be98a4dc Point Cloud: Implement "Set Attribute" operator
Similar to the mesh and curves operators of the same name.
2025-02-16 21:28:53 -05:00
Hans Goudey
aff784aa14 Point Cloud: Implement "Affect only Origins" object transform option
Basically the same code as the curves support in this area.
2025-02-16 20:48:46 -05:00
Hans Goudey
c1c67c918e Refactor: Various C++ cleanups to object data transform
Make `XFormObjectData` a real virtual struct instead of using
C style over-allocation. Use C++ arrays and math types.
2025-02-16 20:31:09 -05:00
Hans Goudey
a369397301 Sculpt: Reduce overhead for multires index buffer creation
Avoid calling `GPU_indexbuf_add_line_verts` and the triangle
version of that function. It's faster to avoid function calls and
just write to the data arrays directly. I did some very rough tests
and observed about a 10% improvement in runtime for the
entire index buffer creation process.
2025-02-16 18:51:14 -05:00
Jonas Holzman
3c4a4282ea Merge branch 'blender-v4.4-release' 2025-02-16 23:41:30 +01:00
kgalik
c3d92f32dc NDOF: Rework input handling on macOS
This patch modifies the logic behind handling NDOF device events on
macOS so that it can benefit from the `Blender` profile available in
3DConnexion driver v10.8.7 and later.

A new device command was introduced: `kConnexionCmdAppEvent`, which is
sent by the driver upong getting an apprioriate NDOF device button
input. This allow the driver to consumes all NDOF device input and then
send appropriate app events based on its configuration instead of
forwarding raw data to the application directly.

When using 3DConnexion driver versions prior to v10.8.7, the behavior
is unchanged. This approach allows for supporting all of the SpaceMouse
Enterprise buttons, long presses included (solving issue #119206 on macOS)

Co-authored-by: Sergey Sharybin <sergey@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/126694
2025-02-16 23:39:24 +01:00
Campbell Barton
c97a2e86a9 Merge branch 'blender-v4.4-release' 2025-02-16 21:00:42 +11:00
Campbell Barton
665b4dfbad Fix IDProperty comparison warning in debug mode
The warning to check if two numbers are nearly equal when comparing
floats didn't take negative numbers into account, causing -1.0 & 0.0
for e.g. to be considered not equal but close.
This also resolves a divide by zero.
2025-02-16 20:56:07 +11:00
Campbell Barton
f43e7b2b09 Fix error in grease_pencil.relative_layer_mask_add poll
Resolve exception during menu search by checking the object type is
grease pencil.
2025-02-16 20:49:52 +11:00
Campbell Barton
5087246f39 Cleanup: strip trailing space, sort file lists 2025-02-16 20:42:16 +11:00
Campbell Barton
4c5424d9fc Merge branch 'blender-v4.4-release' 2025-02-16 19:45:34 +11:00
Campbell Barton
a80bd2744d Fix incorrect null checks in animadata::find_related_ids 2025-02-16 19:39:44 +11:00
Pratik Borhade
f209902866 Merge branch 'blender-v4.4-release' 2025-02-16 13:30:32 +05:30
Pratik Borhade
9dddef9581 Fix #134316: Color being sampled from hidden faces in texture paint
If face that has been hit is hidden, skip sampling from the face,
instead use current pixel color.

Pull Request: https://projects.blender.org/blender/blender/pulls/134321
2025-02-16 08:58:52 +01:00
Campbell Barton
69e63d190d Cleanup: use "at_most" RNA array access functions for simplicity 2025-02-16 18:39:35 +11:00