Commit Graph

117289 Commits

Author SHA1 Message Date
Jacques Lucke
c6e7cdbc57 Merge branch 'blender-v4.3-release' 2024-11-13 18:01:04 +01:00
Luna Rood
8f200d96b2 Fix: Nodes: group edit button unintentionally drawn on NodeCustomGroup
Fix regression caused by 6d8d21812b.

Pull Request: https://projects.blender.org/blender/blender/pulls/130204
2024-11-13 17:59:16 +01:00
Clément Foucault
73a4291ff9 Merge branch 'blender-v4.3-release' 2024-11-13 17:27:27 +01:00
Clément Foucault
87c990ca30 GPU: Add more explicit message for Mac + Nvidia platform
This fixes the confusion, as the previous message
could let to believe you could make the GPU to work
by upgrading to newer MacOS version.

Rel #130224

Pull Request: https://projects.blender.org/blender/blender/pulls/130231
2024-11-13 17:25:38 +01:00
Julian Eisel
b1c86f26c9 Merge branch 'blender-v4.3-release' 2024-11-13 17:01:09 +01:00
Julian Eisel
209dc899ea Fix #128649: Tool icon in toolbar shrinked down with non HiDPI screens
Pixelsize and DPI scaling had to be applied correctly.
2024-11-13 17:00:18 +01:00
Bastien Montagne
2d6fdb8d01 Merge branch 'blender-v4.3-release' 2024-11-13 16:33:58 +01:00
Bastien Montagne
a090ae3318 Fix #125787: Textures don't load for brushes when using "Use Relative Paths" option.
Use new `_in_lib` BKE_image API to re-use or load an image from/in the
expected library, including using the library path as root path for
relative file paths handling.

Using the new `BKE_image..._in_lib` API also allows to get rid of the
`check_exists` 'hack' introduced in `image_open_exec` (when support to
edit some linked data was added, in 5f9f3116db) to avoid re-using local
Image IDs for editable linked data (brush assets), since
`BKE_image_load_exists_in_lib` will now ensure to only re-use an Image
ID if it matches the target library.

This commit also simplifies/makes `ED_image_filesel_detect_sequences`
signature more to the point. It replaces the `Main` parameter by a mere
`root_path` string. The given `bmain` was indeed only used to extract
(again) a base for relative paths.

NOTE: The general idea of this fix is the same as in PR !130058, thanks
to Sean Kim for the investigation and initial fix.

Pull Request: https://projects.blender.org/blender/blender/pulls/130197
2024-11-13 16:32:33 +01:00
Jonas Holzman
527a08ac42 macOS: Add support for clang-tidy checks during compilation
This commit adds support for clang-tidy checks during compilation on
macOS, which can now be enabled using the optional `WITH_CLANG_TIDY`
CMake variable.

The clang-tidy executable doesn't need to be separately installed since
CMake will pick up the executable from the LLVM pre-compiled library.
This commit also expands the coverage of clang-tidy checks to
Objective-C/C++, for which checks were enabled in PR #128334.

Pull Request: https://projects.blender.org/blender/blender/pulls/129761
2024-11-13 16:14:01 +01:00
Pratik Borhade
0ec011e78b Fix: Sculpt invert mask crash with multires
Similar to b1bcdf8d53.

Pull Request: https://projects.blender.org/blender/blender/pulls/130212
2024-11-13 16:00:35 +01:00
Julian Eisel
365f58ca0c Merge branch 'blender-v4.3-release' 2024-11-13 15:59:22 +01:00
Julian Eisel
671f08df96 Fix #129267: No brush previews show up with large asset libraries
Previously, we had to fetch all asset previews at once. However the preview
caching system was limited at 8192 previews, so with large asset libraries, many
previews would get dropped. Instead, allow selectively requesting previews and
only request previews of items displayed on screen. This should fix the issue,
and reduce the time it takes to display brush assets in general, especially with
bigger libraries. This should also reduce memory usage quite a lot when
displaying the asset shelf, since not all asset previews are loaded anymore.

Pull Request: https://projects.blender.org/blender/blender/pulls/130105
2024-11-13 15:53:52 +01:00
Bastien Montagne
1a32a2c66f Merge branch 'blender-v4.3-release' 2024-11-13 15:34:26 +01:00
Bastien Montagne
b863369ae9 Refactor: BKE_image: Allow to load or find existing also in a Library.
This commit refactors `BKE_image_load` and `BKE_image_load_exists` APIs:
* Remove the `_ex` versions (the 'exist' boolean return pointer can have
  default `nullptr` value instead).
* Add `_in_lib` versions, which match signature and behavior of the
  generic ID creation code to allow to find or create a new image ID
  directly in a library 'namespace' (as linked data).

This is required by upcommig fixes for Brush Assets, which are using
linked but editable data-blocks.

Fix #130194: When trying to add a new image from the UI (e.g. for a new
texture) for a local ID, if that same exact image was already loaded by
a linked ID, it would trigger an assert in `BKE_id_move_to_same_lib`,
because `BKE_image_load_exists` would return the matching linked Image ID
instead of creating a new local one. In release builds with no assert,
it would result in making a linked ID 'local', while still being used by
original other linked data.

Passing around the intended final destination of the new Image (local or
in a given library) allows `BKE_image_load_exists` to be more specific
when searching for an already loaded matching image ID, and ensures that
a new local Image ID is created in the case described above.

Pull Request: https://projects.blender.org/blender/blender/pulls/130195
2024-11-13 15:29:29 +01:00
Omar Emara
b9acba177e Compositor: Implement zero boundary EWA sampling
Reference #125968.
2024-11-13 16:01:47 +02:00
Omar Emara
e080668202 Compositor: Implement Crop node for new CPU compositor
Reference #125968.
2024-11-13 15:59:29 +02:00
Omar Emara
5fd9bbb70c Compositor: Implement Flip node for new CPU compositor
Reference #125968.
2024-11-13 15:58:38 +02:00
Leon Schittek
cff7130fc2 Nodes: Remove wrong tweak handling for reroutes
Remove `node_under_mouse_tweak` and replace it with
`node_under_mouse_select`.

The special handling for tweaking reroutes wasn't working correctly:
1. It didn't check at the correct reroute node location.
2. The (de-)selection behavior negated possible benefits anyway.

In practice the user-facing behavior is not affected by this.

Pull Request: https://projects.blender.org/blender/blender/pulls/130222
2024-11-13 14:51:08 +01:00
Julian Eisel
0f8e4b3516 Fix: UI: Many unneeded assets in file-list cache for asset UIs
Partial fix for #129267.

Avoid creating an entry in the file list cache for every asset when iterating
over the available assets. For this, allow passing a pre-filter function to the
asset iterator, to filter based on `AssetRepresentation` data. The asset shelf
can then pre-filter based on asset type and the active catalog.

Really, the cached file entry is only needed to access the preview image of the
asset, so it can be avoided most of the time.

While this should still be solved properly as outlined in #122439, this is
a general improvement and fix the mentioned report in a minimal way.

Was hoping this would be sufficient to fix #129267, but the whole of
!130105 will be needed.

Pull Request: https://projects.blender.org/blender/blender/pulls/130166
2024-11-13 14:13:45 +01:00
Damien Picard
5f52c5ce46 Fix: I18n: Integer Math node title used wrong translation context
The integer math node items used the proper translation context, but
not the translation for the node label.

Reported by ziweidao.

Pull Request: https://projects.blender.org/blender/blender/pulls/130225
2024-11-13 13:53:57 +01:00
Jacques Lucke
64a9260921 Core: remove WITH_CXX_GUARDEDALLOC option
This implements the proposal from #124512. For that it contains the following
changes:
* Remove the global override of `new`/`delete` when `WITH_CXX_GUARDEDALLOC` was
  enabled.
* Always use `MEM_CXX_CLASS_ALLOC_FUNCS` where it is currently used. This used
  to be guarded by `WITH_CXX_GUARDEDALLOC` in some but not all cases. This means
  that a few classes which didn't use our guarded allocator by default before,
  are now using it.

Pull Request: https://projects.blender.org/blender/blender/pulls/130181
2024-11-13 13:39:49 +01:00
Lukas Tönne
702bdde96d Merge branch 'blender-v4.3-release' 2024-11-13 13:39:35 +01:00
Pratik Borhade
f7ffef07d4 Fix #130189: Crash parenting object to layer
Caused by 71398478b2.
`parsubstr` is nullptr in Layer struct. This results in crash when an
object is parented to a new layer. This can be fixed by passing layer
member function `parent_bone_name()`. It handles the null pointer.

Pull Request: https://projects.blender.org/blender/blender/pulls/130205
2024-11-13 13:38:45 +01:00
Clément Foucault
b76cc897b6 Cleanu: GPU: Address GLSL warnings 2024-11-13 12:38:00 +01:00
Clément Foucault
1aea4fb5c7 GPU: GLSL C++ shaders: Silence unuseful warnings 2024-11-13 12:37:00 +01:00
Clément Foucault
29b3df7504 GPU: GLSL compilation as C++ for draw intern shaders
Allow compilation of shaders using C++ for linting and
IDE support.

Related #127983

Pull Request: https://projects.blender.org/blender/blender/pulls/130193
2024-11-13 12:32:39 +01:00
Clément Foucault
582ea0eb40 Fix: Overlay-Next: Crash when selecting object 2024-11-13 11:37:28 +01:00
Pratik Borhade
16410eab9b Fix: Compiler warning about unused enum in switch case.
Caused by 9a4ce4a0f7

Pull Request: https://projects.blender.org/blender/blender/pulls/130213
2024-11-13 11:04:13 +01:00
Bastien Montagne
a9e88bd50b Merge branch 'blender-v4.3-release' 2024-11-13 10:26:21 +01:00
Bastien Montagne
cf0c91a545 Fix BKE_id_move_to_same_lib behavior with invalid parameters.
* Early return in case the given `id` is already in the same library as
  its target `owner_id` (in addition to both being local data).
* Assert with message AND return in case the given `id` is a linked ID
  from a different library.

The second point somewhat mitigates the severity of #130194.
2024-11-13 10:14:57 +01:00
Hans Goudey
f28dafb365 Cleanup: Fix CLOG format string warning in PLY import 2024-11-12 17:52:34 -05:00
Hans Goudey
65bb33a668 Cleanup: Remove unused shape key functions
These were last used in some sculpt code that has been refactored
to do things more efficiently. For that same reason I don't think we're
likely to need them elsewhere.
2024-11-12 17:52:19 -05:00
Jacques Lucke
2618b0ac01 Merge branch 'blender-v4.3-release' 2024-11-12 22:58:40 +01:00
Jacques Lucke
917f7e648c Fix #130180: non-screen space dial gizmo scale does not take geometry scale into account
We can't scale the dial gizmo non-uniformly. Therefore, the average of the x/y/z scale
is used to determine the scale of the gizmo.

Pull Request: https://projects.blender.org/blender/blender/pulls/130183
2024-11-12 22:45:51 +01:00
Miguel Pozo
31ba9b798b Fix #130054: HDRI Preview rendering black if no visible mesh is in the scene
Ensure the probes views are set.

Pull Request: https://projects.blender.org/blender/blender/pulls/130190
2024-11-12 21:22:43 +01:00
Hans Goudey
ce68e3de15 Cleanup: Overlay: Follow style guide for private class variable naming
Pull Request: https://projects.blender.org/blender/blender/pulls/130191
2024-11-12 21:21:50 +01:00
Jesse Yurkovich
c9c2fbc52d Cleanup: IO: Use CLOG and fmtlib for tracing OBJ/PLY/STL messages
OBJ, PLY, and STL used a mix of fprintf, std::cout, and std::cerr to
trace warnings, errors, and general messages to the console.

Now, we instead use CLOG which provides real facilities for warnings and
errors and generally removes the need to pull in and use the heavy
`<iostream>` machinery.

For traces that should always be printed, `fmt::print` is used since
CLOG currently doesn't provide that particular level of trace.

Tests were only minimally changed to drop usage of streams while keeping
their prior usage of older stdio APIs. We can change to using fmtlib
there too if desired.

Pull Request: https://projects.blender.org/blender/blender/pulls/130107
2024-11-12 20:48:57 +01:00
Bastien Montagne
de187f7877 Merge branch 'blender-v4.3-release' 2024-11-12 20:05:30 +01:00
Bastien Montagne
0565f16f18 Fix (unreported) rare assert when loading blendfile using libraries.
There is actually a valid (rare) case where a Library ID can have a `0`
versionfile value during blendfile loading: if that library only
contains 'indirect weak' linked data.

These IDs are only actually read in the library blendfile if they are
also used by some other data, otherwise they are purposedly dropped and
removed, and the library blendfile can end up never being read at all.

This would lead to a completely empty library on blendfile loading,
which can then be removed from the data-base.

NOTE: this _does not_ affect cases where the whole library is missing,
or some linked IDs from that library are not found anymore.
2024-11-12 19:59:32 +01:00
Hans Goudey
04db9697ae Cleanup: Overlay: Remove double map lookup 2024-11-12 13:48:44 -05:00
Julian Eisel
a0b2704202 Fix #128138: No paint curves selectable for brush strokes
The data-block selector filters out local data-blocks when trying to
assign to linked data. A lot of data-block management relies on this.

Since these data-blocks are created for the use with brushes only,
create them under the same library that the brush is from, as indirect
data. The UI allows selecting these data-blocks then. We do the same for
textures attached to a brush, and some other data-block types.

Also add paint-curves to the editable data-block types, so they can be
edited despite being considered linked data.

Pull Request: https://projects.blender.org/blender/blender/pulls/130184
2024-11-12 19:13:24 +01:00
Julian Eisel
9fa906855e Merge branch 'blender-v4.3-release' 2024-11-12 19:13:02 +01:00
Julian Eisel
b11a056150 Fix: Assert when activating brush asset from the current file
Brush assets from the current file should be supported like other brush
assets.

This assert would fail on startup for example, when opening the
essentials file containing the default brush of this mode.
2024-11-12 19:11:14 +01:00
Falk David
9dfcc506fc Merge branch 'blender-v4.3-release' 2024-11-12 18:56:59 +01:00
Pratik Borhade
9a4ce4a0f7 Fix #128749: GPv3: Dopesheet Move channel to top reverses layer order
The operator to move a channel to the top revered the layer order
by iterating from the top to the bottom and moving selected channels
to the top. Iterate from the bottom to the top instead to keep the right
layer ordering.

Pull Request: https://projects.blender.org/blender/blender/pulls/128793
2024-11-12 18:56:12 +01:00
Clément Foucault
091004f1b8 GPU: GLSL compilation as C++ for gpu static shaders
Allow compilation of shaders using C++ for linting and
IDE support.

Related #127983

Pull Request: https://projects.blender.org/blender/blender/pulls/128724
2024-11-12 18:53:34 +01:00
YimingWu
2e82f95237 Fix: LineArt: Cache mechanism fixes
The cache mechanism for line art is changed during migration to GPv3,
however the code path failed to handle following cases which could lead
to a few problems:

- Line art cache isn't deleted after last line art modifier because it
  coule be hidden, causing memory leaks.
- A modifier inside a multiple line art modifier sequence that doesn't
  use cache would prematurely delete line art cache, causing subsequent
  line art modifier to give empty result.
- When the first line art modifier is hidden (in viewport/render), the
  cache is not created correctly, leading to crashes.

Now the new code logic addresses these problems properly by:

- Making sure the last visible line art modifier deletes cache.
- Giving a fresh cache pointer for modifiers that doesn't use global
  cache.
- Line art cache is correctly ensured when there are modifiers that
  are hidden

Pull Request: https://projects.blender.org/blender/blender/pulls/129953
2024-11-12 18:51:45 +01:00
Julian Eisel
e19030a69e Merge branch 'blender-v4.3-release' 2024-11-12 18:17:32 +01:00
Julian Eisel
f66b3eeae9 Fix #128774: Setting brush from Properties doesn't change active tool
We need to be careful about not just looking up active tool data from
context, because this code path may also be run from the Properties,
which use the tools of the 3D view. So make sure related code falls back
to the 3D view, like it's already done in some other places.
2024-11-12 18:03:17 +01:00
Hans Goudey
85f5b22f64 Cleanup: Draw: Remove double negative checking mesh extract type 2024-11-12 11:57:24 -05:00