Commit Graph

103343 Commits

Author SHA1 Message Date
Clément Foucault
1b1b1a19bf EEVEE-Next: Add world clip plane support
This add a way to use a software clip plane in the
prepass shader (surf_depth_frag.glsl).

The benefit of using this instead of gl_ClipDistance
is that the rasterization pattern is given to match.
Which means that only the prepass shader have to use
this.

This is slow and should only be enabled when needed.
2023-10-03 16:09:12 +02:00
Clément Foucault
23e4cbc86a EEVEE-Next: Split curve attributes to their own interface
This avoid poluting shader interfaces which might not be
optimized by the compilers.
2023-10-03 16:09:12 +02:00
Jacques Lucke
fb38327e6a Geometry Nodes: refactor how side effect nodes are set up
Previously, the geometry nodes modifier was converting the
viewer path to a compute context at the same time as it was
setting up side effect nodes for the geometry nodes evaluation.

Now, this is changed to be a two step process. First, the viewer
path is converted to the corresponding compute context.
Afterwards, a separate function sets side effect nodes up so
that the given node in the given compute context will be evaluated.

This has three main benefits:
* More obvious separation of concerns.
* Can reuse the code that maps a viewer path element to a compute
  context already.
* With gizmo nodes (#112677), it may become necessary to add side
  effect nodes  based on a compute context, but without having a
  corresponding viewer path.
2023-10-03 14:12:42 +02:00
Lukas Tönne
ecb7562c74 Merge branch 'blender-v4.0-release' 2023-10-03 12:20:00 +02:00
Lukas Tönne
71732a9600 Fix #113014: Improved sorting to keep node group outputs above inputs
The position validation when manipulating node group items now includes
outputs..inputs order in addition to sockets..panels order. The method
for finding a valid position has been simplified, it's just a single
iteration of insertion sort.

Versioning has been added to ensure files from 4.0 alpha with
potentially unsorted sockets get re-sorted. This uses `std::stable_sort`
so that sockets keep their relative order apart from the input/output
grouping.

Pull Request: https://projects.blender.org/blender/blender/pulls/113060
2023-10-03 12:18:36 +02:00
Lukas Tönne
e9625b10ab Merge branch 'blender-v4.0-release' 2023-10-03 11:40:20 +02:00
Lukas Tönne
a06403cd3b Nodes: Include rotation socket type in anonymous attribute inferencing
Rotation socket is missing in `is_possible_field_socket` for detecting socket types that can be fields.

Pull Request: https://projects.blender.org/blender/blender/pulls/113197
2023-10-03 11:39:47 +02:00
Jacques Lucke
48fe3aab36 UI: start search in menu when pressing spacebar
This way one can easily access the item that has been searched for most
recently if `Sort by Most Recent` is enabled in the user preferences.

Pull Request: https://projects.blender.org/blender/blender/pulls/113144
2023-10-03 11:39:00 +02:00
Sybren A. Stüvel
3d6713e086 Fix #113178: .dae file with collection-less armature crashes on import
If the DAE file was written with something other than Blender 4.0, it
doesn't have the bone collections info. That resulted in a nullptr, which
is now handled properly.
2023-10-03 10:34:44 +02:00
Campbell Barton
818ae7b149 Merge branch 'blender-v4.0-release' 2023-10-03 16:41:19 +11:00
Campbell Barton
3e7769215e Merge branch 'blender-v4.0-release' 2023-10-03 16:41:16 +11:00
Jeroen Bakker
ee92151c3a Overlay-Next: Fix Copy Uninitialized Texture
Overlay engine is currently responsible to initialize the framebuffers
depth_in_front texture. This is a hack and hasn't been ported to
Overlay-Next (yet). This PR skips copying the depth_in_front texture
when it isn't initialized yet.

Issue detected when working on Vulkan backend due its more
strictness.

Pull Request: https://projects.blender.org/blender/blender/pulls/113188
2023-10-03 07:27:36 +02:00
Jeroen Bakker
7d05a4a69f Cleanup: Make format 2023-10-03 07:23:46 +02:00
Campbell Barton
41d62f36d5 Fix uninitialized variable use accessing the screen size under Wayland
It's possible for there to be no outputs under Wayland
(when unplugging monitors for e.g.) so this must be accounted for.

Also avoid calculating the window position when the GHOST backend
doesn't support window positions (which is the case for Wayland).

Add checks for the SDL backend too, where accessing the
screen & desktop size may fail.
2023-10-03 15:40:58 +11:00
Campbell Barton
dea7a94e0c Cleanup: remove redundant call to GHOST_GetMainDisplayDimensions
A maximum window size was calculated but not used
(dating back to the first commit).
2023-10-03 15:09:53 +11:00
Campbell Barton
1e50b54ff2 Merge branch 'blender-v4.0-release' 2023-10-03 13:58:31 +11:00
Campbell Barton
26bb029ad8 Fix #113154: Hang double-clicking on UI elements outside a text field
The logic to handle word selection from double clicking ran even when
the event wasn't inside the button. This would pass an invalid position
to BLI_str_cursor_step_bounds_utf8 which hung.

Resolve by limiting word-selection to when the event is inside
the text editing field as well as clamping the position to ensure
it's within the allowed range.
2023-10-03 13:57:33 +11:00
Campbell Barton
9c018def3e Cleanup: spelling in comments 2023-10-03 11:24:48 +11:00
Campbell Barton
8b940ab0c2 Merge branch 'blender-v4.0-release' 2023-10-03 11:19:40 +11:00
Campbell Barton
779239f5e1 Cleanup: spelling in comments 2023-10-03 11:16:55 +11:00
Campbell Barton
74bb280df5 Fix incorrect sizeof argument to memcmp in EEVEE's ObjectKey comparison 2023-10-03 11:14:08 +11:00
Campbell Barton
83724fe1eb Merge branch 'blender-v4.0-release' 2023-10-03 11:11:17 +11:00
Campbell Barton
69d18c6063 Cleanup: quiet unknown escape sequence warning 2023-10-03 11:08:49 +11:00
Harley Acheson
27aecd34e1 Merge branch 'blender-v4.0-release' 2023-10-02 17:08:26 -07:00
Harley Acheson
68bde462e5 Cleanup: Make format
Formatting changes resulting from Make Format
2023-10-02 17:06:55 -07:00
Harley Acheson
4606935ecb Merge branch 'blender-v4.0-release' 2023-10-02 16:58:48 -07:00
Pratik Borhade
fcd6b6f4f6 Fix #112630: Skip grave and acute quotations when selecting
Treat grave and acute accent characters as delimiters. Allows selection
of words in the same way as if surrounded by double and single
quotation marks.

Pull Request: https://projects.blender.org/blender/blender/pulls/112652
2023-10-03 01:56:59 +02:00
Harley Acheson
77057e90c9 Merge branch 'blender-v4.0-release' 2023-10-02 16:22:19 -07:00
Harley Acheson
e196f0a874 Fix #113044: Reset Fonts When Loading New Files
Close user-loaded fonts when loading a new blend file so that the
global_font slots are not taken up by the old file's fonts.

Pull Request: https://projects.blender.org/blender/blender/pulls/113104
2023-10-03 01:21:03 +02:00
Germano Cavalcante
c435f4a4d5 Merge branch 'blender-v4.0-release' into main 2023-10-02 18:41:10 -03:00
Germano Cavalcante
ba3f8e957f Cleanup: fix unused variable warning
Caused by e7ba91a6f3
2023-10-02 18:40:42 -03:00
Hans Goudey
6305902b24 Cleanup: Avoid combining signed and unsigned integers
https://wiki.blender.org/wiki/Style_Guide/C_Cpp#Integer_Types
2023-10-02 17:38:50 -04:00
Hans Goudey
4bc2ff71af Merge branch 'blender-v4.0-release' 2023-10-02 17:37:34 -04:00
Hans Goudey
85580c5835 Fix #113142: Sculpt fairing operators don't update normals
Tagging the PBVH nodes isn't enough, each vertex has to be tagged too.
2023-10-02 17:36:44 -04:00
Germano Cavalcante
c7d9e7be81 Merge branch 'blender-v4.0-release' into main 2023-10-02 17:26:45 -03:00
Germano Cavalcante
e7ba91a6f3 Fix #113130: Versioning error in snap type in animation editors
Caused by fb556c75df

The ideal would be to increase the version file, but this would make
the versioning code a bit messy, and it was a recent error
(it shouldn't affect many users).
2023-10-02 17:26:07 -03:00
Germano Cavalcante
c706de891c Fix snap to endpoint being represented as loose point
Since different symbols are implemented, there is a distinction between
endpoint and loose point, which was partially missing in the snap code
for Mesh.
2023-10-02 16:33:05 -03:00
Brecht Van Lommel
de6f96df3a Merge branch 'blender-v4.0-release' into main 2023-10-02 19:54:22 +02:00
Brecht Van Lommel
94e2973f0b Build: support OpenColorIO 2.3
For Linux distributions or others that upgrade before we do.

Ref #113157

Pull Request: https://projects.blender.org/blender/blender/pulls/113163
2023-10-02 19:31:19 +02:00
Jacques Lucke
287bcb1b29 Merge branch 'blender-v4.0-release' 2023-10-02 18:20:24 +02:00
Arye Ramaty
d0b4f4f334 UI: Add descriptions to a few geometry nodes
Some geometry nodes were missing descriptions.

Pull Request: https://projects.blender.org/blender/blender/pulls/113164
2023-10-02 18:17:47 +02:00
Jacques Lucke
9a8f65ef13 Fix #113159: improve best word match heuristic in string search
That was accidentally broken as side effect of 56e98f8ba6.
2023-10-02 18:12:41 +02:00
Jacques Lucke
768ced88dd Fix: String Search: avoid casting match scores to int 2023-10-02 18:12:40 +02:00
Jacques Lucke
17f465f775 Fix: Geometry Nodes: dangling pointer in geometry after modifier evaluation
This case probably hasn't been triggered before because we rarely move individual
const-components around between geometry sets. This happened in #113083 in the
optimization when all elements are in the same group.

Pull Request: https://projects.blender.org/blender/blender/pulls/113160
2023-10-02 17:43:22 +02:00
Miguel Pozo
641dff8bf4 EEVEE-Next: Fix DupliObject ObjectKey
`DRW_drawdata_get` reuses the same `DrawData` for all duplis,
so they all end up using the same `ObjectHandle` and `ObjectKey`,
which breaks motion vectors.

* Don't use `DRW_drawdata_get`.
* Simplify `ObjectKey`.

This also solves the issue of objects created "on the fly" always having
the `ID_RECALC_ALL` flag.

Pull Request: https://projects.blender.org/blender/blender/pulls/112544
2023-10-02 16:52:56 +02:00
Miguel Pozo
68c69a99d3 Merge branch 'blender-v4.0-release' 2023-10-02 16:45:55 +02:00
Miguel Pozo
0ed6172833 Fix #112164: Draw: Circle select tool low performance
Since garbage collection of texture pools happens every time
`drw_manager_init` is called, interleaved calls to different
`DRW_draw`/`DRW_render` functions can result in a constant cycle of
creating/releasing textures.

This PR changes texture pools to only release textures that have not
been used for N garbage collection cycles.
I chose 8 as default since I think is high enough to avoid the issue
while it's unlikely to cause any major spike in memory consumption.

Pull Request: https://projects.blender.org/blender/blender/pulls/113024
2023-10-02 16:43:48 +02:00
Brecht Van Lommel
43b8560066 Merge branch 'blender-v4.0-release' into main 2023-10-02 16:42:05 +02:00
Charles Wardlaw
f536513952 Fix #112463: crash or invalid results importing USD uniform colors
The code assumed quads and failed with triangles

Co-authored-by: Michael Kowalski <makowalski@nvidia.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/112589
2023-10-02 16:32:00 +02:00
Sergey Sharybin
a21112d7d8 Merge branch 'blender-v4.0-release' 2023-10-02 16:21:06 +02:00